1. 程式人生 > >Java中抽象類的構造器的作用

Java中抽象類的構造器的作用

因為抽象類不可例項化,那麼只能在子類例項化時呼叫該抽象類的構造器才有用

看例項程式碼:

abstract class Animal {
	Animal(){
		System.out.println("抽象類Animal無參構造器"); //此處執行前會預設執行super()
	}
	
	Animal(int a){
		System.out.println("抽象類Animal有參構造器");
	}
}
public class Horse extends Animal {
	Horse () {
		System.out.println("子類horse無參構造器"); //此處執行前會預設執行super()
	}
	
	Horse (int h) {
		super(3);
		System.out.println("子類horse有參構造器");
	}
	
	public static void main(String [] args) {
		Horse h = new Horse();
		System.out.println("---------------------");
		Animal h2 = new Horse(6);
//		Animal h3 = new Animal(); //無法編譯,抽象類不可例項化
	}
}

執行結果如下:
抽象類Animal無參構造器
子類horse無參構造器
---------------------
抽象類Animal有參構造器
子類horse有參構造器