什麼是抽象類? 抽象類如何演變多型
阿新 • • 發佈:2019-01-23
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(); //用抽象類的方法訪問子類的方法 .這就是多型