2

次のように、非抽象メソッドを含む抽象クラスがあります。

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

今私の質問は、myNonAbstractMethod()派生せずに直接呼び出すことは可能myClassですか?

4

2 に答える 2

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 
于 2013-11-12T10:50:46.677 に答える
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

于 2013-11-12T10:50:53.620 に答える