Javaでのリロード、書き換え、非表示(続き)


三、隠す(Hide)
(1)隠しといえば、キーワードであるstaticに言及せざるを得ません.staticは静的な意味で、具体的な使い方の意味は、皆さんが関連資料を調べることができます.ここで私が言いたいのは、static方法の継承における特殊性です!
(1)サブクラスは親の静的メソッドを書き換えることができず,(Hiding)親の静的メソッドのみを隠すことができる.
(2)親を隠す静的メソッドとは何か.親の静的メソッドと子の静的メソッドが同時に存在するということである.具体的に呼び出されるメソッドは、呼び出されるメソッドの参照がどのタイプの参照であるか、親の参照であれば親の静的メソッド、子の参照であれば子の静的方法.「この中には多態(Polymorphism)の知識があるので、分からないことは私に聞いてもいいですよ!」具体的な違いは、公式文書から来た例を見ることができます.
public class Animal 
{
    public static void testClassMethod() 
    {
        System.out.println("The class" + " method in Animal.");
    }
    public void testInstanceMethod() 
    {
        System.out.println("The instance " + " method in Animal.");
    }
}

The second class, a subclass of Animal, is called Cat:
public class Cat extends Animal 
{
    public static void testClassMethod() 
    {
        System.out.println("The class method" + " in Cat.");
    }
    public void testInstanceMethod()
    {
        System.out.println("The instance method" + " in Cat.");
    }

    public static void main(String[] args) 
    {
        Cat myCat = new Cat();
        Animal myAnimal = myCat;
        Animal.testClassMethod();
        myAnimal.testInstanceMethod();
    }
}

The output from this program is as follows: The class method in Animal.
The instance method in Cat.
公式の書き換えと非表示の説明:クリックしてリンクを開く