歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java 抽象類“實例化”

Java 抽象類“實例化”

日期:2017/3/1 9:19:09   编辑:Linux編程

毋庸置疑,抽象類是不可以實例化,抽象類不像具體類那樣描述一個具體的事物,它是提取具有相似性具體事物的公共特征的抽象,實現它也沒有任何意義。

如果不繼承抽象類,而是“實例化”抽象類,寫法如下:

package subClass;
abstract class ParentClass {
public abstract void abstractFun();
}

class SubClass {
//此處"實例化"ParentClass 是實例化 ParentClass(){},並實現ParentClass的抽象方法,因此抽象類是不可以實例化的
ParentClass parentClass=new ParentClass(){
@Override
public void abstractFun() {
System.out.println("abstractFun()");
}
};

}

public class TestExtends {
public static void main(String args[]){
SubClass sub=new SubClass();
sub.parentClass.abstractFun();
}
}

實例化"ParentClass 是new ParentClass(){},並實現ParentClass的抽象方法,而不是 newParentClass()。

以上結構和Android事件監聽相似:

  findViewById(R.id.stop_Button).setOnClickListener(new View.OnClickListener() {     
   @Override 此處省略 @Override 時 請勿以為是內部類。
   public void onClick(View v) {
stopService(it);
}
});

抽象類特征: 非抽象類繼承抽象類必須實現抽象類的抽象方法;

Copyright © Linux教程網 All Rights Reserved