我有一个包含非抽象方法的抽象类,如下所示。
abstract class myClass {
public void myNonAbstractMethod()
{
//some logic goes here...
}
}
现在我的问题是,是否可以myNonAbstractMethod()
直接调用而无需派生myClass
?
我有一个包含非抽象方法的抽象类,如下所示。
abstract class myClass {
public void myNonAbstractMethod()
{
//some logic goes here...
}
}
现在我的问题是,是否可以myNonAbstractMethod()
直接调用而无需派生myClass
?
不,因为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;
}
}
输出:
5