抽象类与接口

Java基础
抽象类与抽象方法
包含抽象方法的类必须定义为抽象类,但是该类中也可以含有非抽象方法;
抽象方法在抽象类中只能被声明不能被实现,需要依靠子类去实现抽象方法;
抽象方法不能实例化对象,只能通过子类继承去实例化对象;
子类继承抽象类后,需要实现抽象方法,实现时方法没有abstract关键字,否则又成为了抽象类,且必须实现所有抽象方法。
注:Abstract和private也是不可以一起使用的。
接口
接口定义式需要使用interface关键字,是功能的集合,只定义方法,不具备实现;
接口中所有成员变量修饰符 public static final;
接口中所有的方法的修饰符 public abstract;
接口不可以创建对象;
接口中的全部抽象方法由子类具体实现,然后子类才可以实例化;
类可以实现多接口,class Zi implements Fu1,Fu2;
接口之间实现多接口是以继承的方式,interface Zi extends Fu1,Fu2,Fu3。
接口和抽象类的区别
接口中的方法全部都是抽象方法;
一个类只能继承一个抽象方法,但是可以实现多个接口;
抽象类是这个事物中应该具备的内容, 继承体系是一种 is…a关系
接口是这个事物中的额外内容,继承体系是一种 like…a关系。

二者的选用:
优先选用接口,尽量少用抽象类;
需要定义子类的行为,又要为子类提供共性功能时才选用抽象类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值