今天看学习教程,大体总结了一下。
原理:
接口--<实现implements>---抽象类---<继承extends>---具体类
抽象类担任适配器的角色,实现接口中所有的方法,此时被实现的方法则不再是抽象方法,通过继承可被子类继承或者覆盖,具体类继承抽象类,覆盖其中部分需要的方法。
和尚.java
public interface 和尚 {
void 习武();
void 吃斋();
void 念经();
}
适配器.java
public abstract class 适配器 implements 和尚 {
public void 习武() {
}
public void 吃斋() {
}
public void 念经() {
}
}
鲁智深.java
public class 鲁智深 extends 适配器 {
public void 习武(){
System.out.println("倒拔垂杨柳,拳打镇关西!");
}
}
入口.java
public class 入口 {
public static void main(String[] args) {
和尚 hs = new 鲁智深();
hs.习武();
}
}
注意:一个具体类要继承一个抽象类,前提是这个抽象类中不含有抽象属性或者抽象方法;
即:一个类继承一个抽象类,若只实现部分抽象方法,则此类也必定为抽象类!