1. 程式人生 > >什麼是抽象類? 抽象類如何演變多型

什麼是抽象類? 抽象類如何演變多型

 

abstract class Abs{
	private int i;
	public abstract void f();
}
public class TestABsClass {

	public static void main(String[] args) {
		System.out.println("抽象類!");

	}
}

總結:

       如果f()方法沒有方法體,class類前面必須加abstract修飾, 如果f()方法
    含有方法體,class前面可以加也可以不加abstract修飾,因為一個抽象類中 是可以沒有抽象方法的.少見.
      f()方法 如果沒有方法題,必須加abstract修飾為 抽象方法

 

abstract class ABS1{
	abstract public void f();
}
class S extends ABS1{
	public void f(){
		System.out.println("bbbbb");
	}
}
public class TestABsClass_2 {

	public static void main(String[] args) {
		//ABS1  a =new ABS1(); error
		ABS1 aa =new S(); //定義一個抽象類的引用
		aa.f();
	}

}

從本程式中 可以看出,抽象類不能例項話. 但是可以定義一個抽象類的引用
可以把一個子類物件的地址付給抽象類的引用,然後通過抽象類的引用呼叫子類從父類繼承過來的
方法:
     抽象類實現多型

       A aa2 =null;  //可以定義一個抽象類的引用

       aa2=new B(); //將子類物件地址賦給抽象類的引用

       aa2.f();  //用抽象類的方法訪問子類的方法 .這就是多型