更新到(19.12.22):https://blog.csdn.net/BigBug_500/article/details/103657649
1. 接口中只有抽象方法。对于实现它的子类,都要求重写它的抽象方法。
当在一个接口中,加入一个抽象方法时,他的子类都必须去实现新的抽象方法。
2. 抽象类中既可以有抽象方法,也可以有非抽象方法。对于继承它的子类,具有它的非抽象方法,但必须重写它的抽象方法。
当在一个抽象类中,加入一个非抽象方法时,那么它的所有子类都同时具有了这个新方法。
3. 接口和抽象类的配合使用,就可以实现缺省适配模式
用抽象类实现接口,在接口中,定义出抽象方法,在抽象类,实现默认的抽象方法。
对于其所有子类,继承抽象类,如果需要子类完成的方法,不在抽象类中实现,则所有子类都需要去实现抽象方法;如果不需要子类去实现的方法,可以在接口中定义、在抽象类中实现,则子类就具有了这个新方法。
interface interfac {
//接口中只能定义方法
void methodIn();
}
abstract class abstrac implements interfac {
//在抽象类中,可不用实现接口中的方法
@Override
public void methodIn() {
}
//可以对方法进行实现
public String methodAb() {
return "methodAb";
}
//可以使用抽象方法
abstract public String methodAb1();
}
class myClass extends abstrac implements interfac {
//本类 或者 其父类必须实现接口中的方法
// @Override
// public void methodIn() {
//
// }
//必须实现继承的抽象类中的抽象方法
@Override
public String methodAb1() {
return null;
}
//可以使用抽象类中定义好的方法
public String myMethod() {
return this.methodAb();
}
}