Java - 抽象类、接口

抽象类

抽象类注意事项、特点:

  • 抽象类中不一定有抽象方法,由抽象方法的类一定是抽象类
  • 类该有的成员(成员变量、方法、构造器)抽象类都可以有
  • 抽象类最主要的特点:抽象类不能创建对象,仅作为一种特殊的父类,让子类继承并实现
  • 一个类继承抽象类,必须重写完抽象类的全部抽象方法,否则这个类也必须定义成抽象类。

抽象方法必须用abstract修饰,只有方法签名,一定不能有方法体。

抽象类的场景及好处:

父类知道每个子类都要做某个行为,但每个子类要做的情况不一样,父类就定义成抽象方法,交给子类去重写实现。这样是为了更好的支持多态。

抽象方法

如果你想设计这样一个类,该类包含一个特别的成员方法,该方法的具体实现由它的子类确定,那么你可以在父类中声明该方法为抽象方法。

Abstract 关键字同样可以用来声明抽象方法,抽象方法只包含一个方法名,而没有方法体。

抽象方法没有定义,方法名后面直接跟一个分号,而不是花括号。

声明抽象方法会造成以下两个结果:

  • 如果一个类包含抽象方法,那么该类必须是抽象类。
  • 任何子类必须重写父类的抽象方法,或者声明自身为抽象类。

继承抽象方法的子类必须重写该方法。否则,该子类也必须声明为抽象类。最终,必须有子类实现该抽象方法,否则,从最初的父类到最终的子类都不能用来实例化对象。

public abstract void cry();

模板方法设计模式:

  1. 定义一个抽象类
  2. 在里面定义两个方法:1. 模板方法:把相同代码放进去

                                                2.抽象方法:具体实现交给子类完成

建议用final关键字修饰模板方法。

接口

关键字interface可以定义出接口

接口不能创建对象;接口时用来被类实现的,实现接口的类称为实现类

 一个类可以实现多个接口,实现类实现多个接口,必须重写完全部接口的全部抽象方法,否则实现类需要定义成抽象类。

alt+enter,选择第一个回车将全部接口的的抽象方法重写。

接口的好处:

  1. 弥补了类单继承的不足,一个类同时可以实现多个接口
  2. 让程序可以面向接口编程,这样程序员就可以灵活方便的切换各种业务实现。

JDK8 接口新增的方法

1. 默认方法:必须使用default修饰,默认会呗public修饰

2.私有方法:必须使用private修饰(JDK9开始才支持)

3.静态方法:必须使用static修饰,默认会被public修饰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值