在实施接口中,我们利用interface语法,将interface从类定义中独立出来,构成一个主体。interface为类提供了接口规范。
在继承中,我们为了提高程序的可复用性,引入的继承机制。当时的继承是基于类的。interface接口同样可以继承,以拓展原interface。
接口继承
接口继承(inheritance)与类继承很类似,就是以被继承的interface为基础,增添新增的接口方法原型。比如,我们以cup作为原interface:
接口如下:
interface的多重继承
在java类的继承中,一个衍生类只能有一个基类。也就是说,一个类不能同时继承多于一个的类。在java中,interface可以同时继承多于一个interface,这叫做多重继承(multiple inheritance)。
比如我们有下面一个player接口:
我们新增一个musiccup的接口。它既有cup接口,又有player接口,并增加一个display()方法原型。
(如何使用interface,见)
抽象类
在生活中,我们会有一些很抽象的概念。这些抽象的概念往往是许多类的集合,比如:
1.粮食 (可以是玉米、小麦、大米)
2.图形 (可以是三角形、圆形、正方形)
再比如,我们之前举出了例子:
1.人类 (可以是男人、女人)
在组织这样的关系时,我们可以使用继承,比如:
根据我们的常识:
1."food类的对象"的说法是抽象的。这样一个对象应该是属于corn, rice, wheat子类中的一个。
2.food类有eat()方法 (食物可以吃)。然而,这样的一个动作是抽象的。粮食的具体吃法是不同的。比如corn需要剥皮吃,wheat要磨成面粉吃。我们需要在每个类中覆盖food类的eat()方法。
抽象与具体
java中提供了抽象类(abstract class)的语法,用于说明类及其方法的抽象性。比如:
类中的方法可以声明为abstract,比如上面的eat()。这时,我们不需要具体定义方法,只需要提供该方法的原型。这与接口类似。当我们在比如corn类中继承该类时,需要提供eat()方法的具体定义。
类中的另一个方法happyfood()并不是
当一个类中出现abstract方法时,这个类的声明必须加上abstract关键字,否则java将报错。一个abstract类不能用于创建对象。
抽象类的继承
我们可以像继承类那样继承一个抽象类。我们必须用完整的方法定义,来覆盖抽象类中的抽象方法,否则,衍生类依然是一个抽象类。
抽象类的定义中可以有数据成员。数据成员的继承与正常类的继承相同。
总结
interface继承,多重继承
abstract method, abstract类
如对本文有疑问, 点击进行留言回复!!
跟我学Springboot开发后端管理系统6:缓存框架Caffeine
《Oracle Java EE编程自学与面试指南》01-02、Web应用类型
Error: Avoided redundant navigation to current location: “/XXX“.的问题
Avoided redundant navigation to current location:
荐 四十一、Vue项目上手 | 用户管理系统 实现用户修改和删除功能(完成篇)
网友评论