在继承关系中,基类作为类生成对象,对程序来说不合理。
动物类作为基类,生成对象显然不合理
由此,我们可以设计定义基类为抽象类
此外,动物经过人类驯化,可以衍生出一些特别的技能
例如马戏团的老虎跳火圈、狗熊自行车等
这种通过训练后天获得的可以通过Java的接口实现
abstract
修饰的类是抽象类。
public abstract class Animal{
}
被abstract
修饰的方法是抽象方法。
public abstract class Animal{
public abstract void eat();
}
Animal
抽象基类为例public class Cat extends Animal{
//实现抽象方法
public void eat(){
System.out.println("吃饭");
}
}
//或者
public abstract class Cat extends Animal{
//不实现抽象方法
}
Java接口是一系列方法的声明,
接口可以看作是一种特别的抽象类
final
修饰符abstract
修饰符static
、default
修饰的方法除外)interface Train{
void kneading();
}
接口和继承类似,直接在类声明后添加implements
即可。
public class Cat implements Train{
public void kneading(){
System.out.println("踩奶");
}
}
与继承extends
不同,接口有不一样的特性:
Java接口的继承是多继承机制,一个接口可以同时继承多个接口
Java接口继承父接口后,自动继承父接口的所以方法和属性。
interface Train extends Practice,Drill...{
//接口代码
}
随着技术更新,接口也有新的规则。
static
方法default
方法interface JDK8{
static void method(){
System.out.println("接口静态方法");
}
//在重写中,不能再加default修饰符
default void method(){
System.out.println("接口默认方法");
}
}
因为默认方法不是抽象方法,所以可以不重写
原文:https://www.cnblogs.com/occlive/p/13388778.html