接口和抽象类

接口和抽象类是Java中实现多态的两种方式。接口更强调规范,所有方法默认为抽象,类可实现多个接口。抽象类可包含成员变量和非抽象方法,类只能单继承但可多实现抽象类。Java8后接口可包含默认方法。选择使用时需考虑具体需求和继承关系。
摘要由CSDN通过智能技术生成

接口
接口就是一个规范和抽象类比较相似。它只管做什么,不管怎么做。通俗的讲,接口就是某个事物对外提供的一些功能的声明,其定义和类比较相似,只不过是通过interface关键字来完成。

比抽象类更加抽象的是接口,在接口中所有的方法都是抽象的。

重要的知识点:

1.在接口中成员变量都静态成员变量,即省略了public static final修 饰符。
2.接口中的所有方法默认为抽象方法,即省略了public关键字。
3.声明接口使用interface关键字,interface前面的修饰符是public或省略。
4.某个类实现接口时,要在声明时使用implements关键字,当实现多个接口之间用逗号(,)分隔。
5.实现 接口时要实现接口中声明的所有原有的抽象方法。
 

抽象类
抽象类:用abstract修饰的类叫做抽象类。
 

abstract修饰的类为抽象类,此类不能有对象,(无法对此类进行实例化,说白了就是不能new);
abstract修饰的方法为抽象方法,此方法不能有方法体(就是什么内容不能有);

关于抽象类的使用特点:

1.抽象类不能有对象,(不能用new此关键字来创建抽象类的对象);
2.有抽象方法的类一定是抽象类,但是抽象类中不一定有抽象方法;可以有0到n个抽象方法,以及0到n具体方法。
3.抽象类中的抽象方法必须在子类中被重写。抽象方法生来就是要被重写的,而且是必须重写。
4.抽象类和普通类一样,各种形式的成员变量都可以声明,也需要构造方法。
 

抽象类与接口区别
接口支持多继承,而抽象类(包括具体类)只能继承一个父类。
接口中不能有实例成员变量,接口所声明的成员变量全部是静态常量,即便是变量不加public static final修饰符也是静态常量。抽象类与普通类一样各种形式的成员变量都可以声明。
接口中没有包含构造方法,由于没有实例成员变量,也就不需要构造方法了。抽象类中可以有 实例成员变量,也需要构造方法。
抽象类中可以声明抽象方法和具体方法。Java 8之前接口中只有抽象方法,而Java 8之后接口中 也可以声明具体方法,具体方法通过声明默认方法实现。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光莫不甘娜哪行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值