簡體   English   中英

如何在不派生抽象類的情況下直接調用抽象類的非抽象方法?

[英]How to call a non abstract method of an abstract class directly without deriving the abstract class?

我有一個抽象類,其中包含一個非抽象方法,如下所示。

abstract class myClass {     
    public void myNonAbstractMethod()
    {
        //some logic goes here...
    }   
}

現在我的問題是,是否可以在不派生myClass情況下直接調用myNonAbstractMethod()

不,因為abstract class本身不能實例化。 必須從中派生才能構造實例。

 public abstract class Base {

   public void BaseMethod() {
   }
 }

 var bs = new Base();  //FAIL TO COPMILE

但..

 public class Derived : Base {

 }

 var bs = new Derived ();  //OK
 bs.BaseMethod(); //OK 

您無法實例化抽象類,這意味着您無法直接從中調用實例方法。

如果你真的不想派生它,你可以使方法成為static ,但子類最好。

public class Test {
    public static void main(String[] args) {
         System.out.println(SomeTest.size());
    }
}

abstract class SomeTest {
    public static int size() {
        return 5;
    }
}

輸出:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM