chenkairong

继承的可以理解为父亲可以有很多个儿子,但是儿子只有一个亲爹.

那接口怎么理解呢?

我觉得可以这么理解:就是儿子只能有一个亲爹但是可以有很多个干爹.

接口的格式:

1.interface+接口名

2.接口的抽象方法:abstract+方法名.

3.接口的默认方法:default+方法名.

以此类推啊!兄弟们.....

但是抽象方法才是接口的核心.

一个接口,里面有抽象方法,默认方法、静态方法...但是随着JDK的更新接口也有私有方法、私有静态方法,但是对开发者来说现在市面上还是用Java8的最多,毕竟要求稳定吗?要是哪天出问题了那可咋整啊.

用implement的关键字来实现接口.

对抽象方法要进行重写来实现.

1.默认方法

一开始接口确实只有抽象方法,但是后来开发者发现,这个接口若是要拓展,增加一个抽象方法,所有的实现类都要重写方法,特繁琐。

什么意思呢?

动物园一开始制定的规则是:你想进动物园,必须说明你吃什么?

现在动物园想增加一个功能,就是想知道每个动物的名字叫什么?

如果把name()方法设定成抽象方法,那就是每个动物必须得告诉我你的名字,但问题是有的动物暂时还没名字,怎么办?

所以,如果不是强制性的要求,就可以制定成默认方法。什么时候有需求了重写就好,也可以一直不重写方法。

现在有一只兔子,没有名字,那就用接口的默认名(动物),突然有一天想给它取了一个新名字,叫小白,怎么办?重写默认方法就好了,重写以后它的名字就叫小白了。

所以默认方法可重写可不重写(都不会报错哈大家放心).
 

2.静态方法

这个比较容易理解,static这个关键字前面就学习过,可以用类名.方法名直接调用。

在接口中,就是接口名.方法名直接可以调用。

接口有个特点,就是接口里的静态方法只能用接口名调用,其他都不行。

接口的静态方法只能用接口名调用否则会报错啊兄弟们.

3.抽象类:
抽象类:有抽象方法的类就叫抽象类.如果一个类包含抽象方法,那么该类必须是抽象类.
它和接口类似,也是必须要重写它的抽象方法,不然不行.
父类和子类的关系也就相当接口和实现类的关系.
 
抽象类和接口的相同点:
都不能创建对象,也就是说没办法实例化,只能通过子类/实现类来创建对象.
子类/实现类必须重写抽象方法.
 
抽象类和接口的不同点:
不同的引用数据类型,一个类,一个接口.
 
子类只能继承一个父类,但是子类可以实现多个接口;反过来就是一个抽象类只能有一个子类,但是接口能有多个实现类.
 
接口的设计具有更大的可扩展性,而抽象类的设计必须十分谨慎.
 

 

 

 
 

分类:

技术点:

相关文章: