宿州网站建设推广,国外网站怎么做推广,百度极速版推广,个人做seo怎么赚钱在实施接口中#xff0c;我们利用interface语法#xff0c;将interface从类定义中独立出来#xff0c;构成一个主体。interface为类提供了接口规范。 在继承中#xff0c;我们为了提高程序的可复用性#xff0c;引入的继承机制。当时的继承是基于类的。interface接口同样可… 在实施接口中我们利用interface语法将interface从类定义中独立出来构成一个主体。interface为类提供了接口规范。 在继承中我们为了提高程序的可复用性引入的继承机制。当时的继承是基于类的。interface接口同样可以继承以拓展原interface。 接口继承
接口继承(inheritance)与类继承很类似就是以被继承的interface为基础增添新增的接口方法原型。比如我们以Cup作为原interface:
interface Cup {void addWater(int w);void drinkWater(int w);
}我们在继承Cup的基础上定义一个新的有刻度的杯子的接口MetricCup 接口如下:
interface MetricCup extends Cup
{int WaterContent();
}我们增添了一个新的方法原型WaterContent()这个方法返回一个整数(水量)。
interface的多重继承
在Java类的继承中一个衍生类只能有一个基类。也就是说一个类不能同时继承多于一个的类。在Java中interface可以同时继承多于一个interface这叫做多重继承(multiple inheritance)。
比如我们有下面一个Player接口:
interface Player
{void play();
}
我们新增一个MusicCup的接口。它既有Cup接口又有Player接口并增加一个display()方法原型。
interface MusicCup extends Cup, Player
{void display();
}(如何使用interface见实施接口)
抽象类
在生活中我们会有一些很抽象的概念。这些抽象的概念往往是许多类的集合比如: 粮食 (可以是玉米、小麦、大米) 图形 (可以是三角形、圆形、正方形) 再比如我们之前举出了例子: 人类 (可以是男人、女人) 在组织这样的关系时我们可以使用继承比如: 根据我们的常识: Food类的对象的说法是抽象的。这样一个对象应该是属于Corn, Rice, Wheat子类中的一个。 Food类有eat()方法 (食物可以吃)。然而这样的一个动作是抽象的。粮食的具体吃法是不同的。比如Corn需要剥皮吃Wheat要磨成面粉吃。我们需要在每个类中覆盖Food类的eat()方法。 Java中提供了抽象类(abstract class)的语法用于说明类及其方法的抽象性。比如:
abstract class Food {public abstract void eat(); public void happyFood(); { System.out.println(Good! Eat Me!); }
}类中的方法可以声明为abstract比如上面的eat()。这时我们不需要具体定义方法只需要提供该方法的原型。这与接口类似。当我们在比如Corn类中继承该类时需要提供eat()方法的具体定义。
类中的另一个方法happyFood()并不是
当一个类中出现abstract方法时这个类的声明必须加上abstract关键字否则Java将报错。一个abstract类不能用于创建对象。 抽象类的继承
我们可以像继承类那样继承一个抽象类。我们必须用完整的方法定义来覆盖抽象类中的抽象方法否则衍生类依然是一个抽象类。
抽象类的定义中可以有数据成员。数据成员的继承与正常类的继承相同。
总结
interface继承多重继承
abstract method, abstract类