[英]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.