1:abstract 可以修饰类,方法
被声明为abstract的类只能被继承,不能生成对象
2:如果一个类中含有抽象方法,则这个类一定是个抽象类,相反,一个抽象类可有非抽象方法
3:抽象类不能被实例化,但是可以声明使用,即不能用做运行时类型,只能用做编译时类型
4:子类必须实现抽象类中的抽象方法
抽象方法被子类覆盖后才生效
Template定义:定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中.
这和4是一致的
public abstract class parent{
public abstract void speck();
public final void act(){ //控制流程
System.out.println("call speck()");
speck();
}
}
public class sun extends parent{
public void speck(){ //具体实现
System.out.println("i am in speck");
}
public static void main(String[] args){
parent p = new sun();
p.act();
}
}