java中抽象类的概念

抽象类

public abstract class A{}

抽象类中可以定义抽象方法和普通方法;抽象方法指的是没有方法体的方法

public abtract void function();//抽象方法

由于抽象方法没有方法体,所以不能够直接被调用,那么抽象类就不能够被直接实例化产生的对象,所以抽象类:

  1.抽象类必须有子类(子类可以是抽象类也可以是普通类)

  2.非抽象类继承抽象类必须覆写抽象类中的所有抽象方法,一个子类只能够继承一个抽象类,单继承局限;

  3.抽象类的实例化方式通过子类完成,采用向上转型的方式;  

由于抽象类中可以存在一些属性,所以允许存在构造方法,在对子类实例化的时候,依然会先调用父类构造,后调用子类构造

外部的抽象类不可以使用static定义,内部抽象类可以使用static定义,相当于外部类;

在一个类的构造执行之前,其内部的属性的值都是其对应类型的默认值

abstract class A{
    public A(){ // 第二步
        this.print();
    }
    public abstract void print();//第三步:寻找子类print()
}
class B extends A{
    private int num;
    public B(int num){
        this.num = num;
    }
    public void print(){ //第三步:此时构造方法还没执行
        System.out.print(num);
    }
}
public class Test{
    public static void main(String args[]){
         new B(30);//输出的值是:0   第一步
    }
}

简单模板设计模式

posted @ 2017-08-09 17:02  小洋编程  阅读(297)  评论(0编辑  收藏  举报