JAva学習ノート---多態の使い方をテストする


JAva学習ノート(高琪版)


オブジェクト向けOOP


多態の使い方をテストする

  • マルチステートとは、プログラムの最終状態がプログラムの実行時に確定する
  • であることを意味する.
  • 最初のクラスは、複数のクラスによって継承する必要がある
  • .
  • この複数のクラスは親クラスに比べて一定の書き換えがあってこそ意味がある(方法の書き換え)
  • .
  • 新規オブジェクト作成時に親参照が子オブジェクトを指す
  • メソッドに持ち込むオブジェクトは、親形式
  • である必要があります.
    親に継承された3つの子を定義します.
    package com.lyr.oop.polymorphism;
    /*
     *  
     */
    public class Animal {
        String name;
    
        public void voice(){
            System.out.println(" ");
        }
    }
    
    class Cat extends Animal {
        public void voice(){
            System.out.println(" ");
            }
        public void Catch(){
            System.out.println(" ");
            }
    }
    class Dog extends Animal{
        public void voice(){
            System.out.println(" ");
        }
    }
    class Pig extends Animal{
        public void voice(){
            System.out.println(" ");
        }
    }
    

    testクラス、新しい親オブジェクトでいいです.コードの実行時に具体的なオブジェクトを考慮します.
    package com.lyr.oop.polymorphism;
    public class Test {
    
        public static void testAnimalVoice(Animal c){
            c.voice();
            if (c instanceof Cat ){     // instanceof , 
            ((Cat) c).Catch();  
            }
        }
    
        // , Cat;
    
        /*public static void testAnimalVoice(Cat c){
            c.voice();
        }
        */
    
        public static void main(String[]args){
        Animal a = new Cat();
        testAnimalVoice(a);
        Animal b = new Dog();
        testAnimalVoice(b);
    
    
        Pig c = new Pig();
        testAnimalVoice(c);
        }
    }

    Instanceofの使い方は、入力したオブジェクトが指定されたオブジェクトであるかどうかを判断し、多態の方法に置く.このサブクラスオブジェクト固有で特別な実行が必要なメソッドを呼び出す必要がある場合は、使用できます.