列举java中常见的接口和抽象类_Java中的接口和抽象类

本文详细阐述了抽象类与接口的概念及其区别,包括两者在继承、构造方法等方面的特性,以及如何在Java中正确使用它们。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.抽象类:被abstract修饰的只有声明,没有实现的类称为抽象类。

特殊的抽象类:如果一个抽象类中,其所有属性都是公开静态常量,所有方法都是公开抽象方法,我们可以将这种特殊的抽象类改写成接口。

改写成接口的方式:使用Interface关键字替换abstract class两个关键字;

接口的特点与上面个描述的特殊的抽象类一致:接口中所有属性都是公开静态常量,所以可以省略public static final三个关键字(既然大家都是一样的,默认省略即可),所有方法都是公开抽象方法,所以可以省略public abstract关键字(既然所有方法都是一样的,那么默认省略即可) 。

注意:interface 关键字和 class 关键字类似,一个接口编译后会生成一个.class 文件;一个.java 文件中可以有多个接口,但是最多只能有一个公开的接口,且公开接口的接口名与文件名相同。

接口和抽象类一样的地方在于:都只能声明引用,不能直接创建对象。

接口和抽象类不同的地方在于:抽象类可以拥有构造函数,虽然不能直接创建对象,但是可以在子类实例化时调用该抽象类的构造器;接口中不能定义构造方法,系统也不会提供默认无参的构造方法。

抽象类之间可以继承,接口和接口之间也有类似操作,同样使用extends关键字,但是接口之间的继承可以是多个,例如一个接口a可以同时继承接口b、c; 继承多个接口时,多个接口之间用逗号隔开(多继承)。

抽象类可以被子类继承,接口也可以被子类继承,接口中使用的关键字为implements意为实现;需要注意:1.子类实现接口,必须要实现接口中定义的全部方法才可;2.由于接口中的方法都是默认是public,但类中默认的方法都是default,所以接口的实现类中的方法中关键字public是不能省略的。

总结:接口与抽象类的不同在于,接口和接口之间可以多继承,并且一个类在继承一个类的同时,可以实现多个接口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值