我有一个抽象类,它包含一个非抽象方法,如下所示。
abstract class myClass {
public void myNonAbstractMethod()
{
//some logic goes here...
}
}
现在我的问题是,是否可以在不派生myNonAbstractMethod()
的情况下直接致电myClass
?
答案 0 :(得分:5)
不,因为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
答案 1 :(得分:5)
您无法实例化抽象类,这意味着您无法直接从中调用实例方法。
如果您真的不想派生它,可以创建方法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