2017-09-13 16 views
-3

親クラスのインスタンスを作成することにより、継承されていない他のパッケージの継承されたメソッドにアクセスすることはできません。私たちの子メソッドは静的で、親クラスメソッドは静的ではないので、直接的にも非staticを使用することはできません。元他のパッケージの静的メソッド(ex mainメソッド)のprotected継承された非静的メソッドにアクセスするには?

package classacees; 

public class Thread1 { 

protected double sub(double a, double b) { 

return (a - b); 

} 

と...

package example; 

import classacees.Thread1; 

public class Ece extends Thread1 { 

     public static void main(String[] args) { 

double n=sub(3,2); // error -> cant make a static reference to non static method. 
System.out.println(n); 

} 
+0

あなたは 'sub'を作成しない理由は、最初に答えることができます静的として、なぜ子クラス(あなたの場合 'main')で静的メソッドを使用しますか? – nullpointer

+0

あなたの質問は何か不明です。 – jdv

+0

の代わりにdouble n = sub(3,2)、try double n = Thread1.sub(3,2) – Assafs

答えて

0

あなたが直接double n=sub(3,2);のようなインスタンスメソッドを呼び出すことはできませんまず第一に、そのためには、オブジェクトが必要です。クエリの

あなたは子クラスのインスタンスから保護されたメソッドにアクセスすることによって、そうすることができます。

public class Ece extends Thread1 { 
    public static void main(String[] args) { 
     Ece ece = new Ece(); 
     double n = ece.sub(4, 9); 
     System.out.println(n); 
    } 

} 

・ホープ、このことができます。..

関連する問題