-8

電話する方法は?実行する方法?

public class Test {
        public static void main(String[] args) {
            Test test = new Test();
            Animal a = new Animal("Animal");
            Dog d = new Dog(" BigDog ","yellow");
            Cat c = new Cat(" SmallCat ","black");
            test.f(a); test.f(d); test.f(c); //(1)
        }

        public void f(Animal a) {
            System.out.println("name :"+ a.name);

            if(a instanceof Dog) {
                Dog dog = (Dog)a;
                System.out.println("    "+ fursColor + "fur"); //!(2)!Error
            }
            else if(a instanceof Cat) {
                Cat cat = (Cat)a;
                System.out.println("  " + eyesColor + "eye"); //(3)!Error
            }
        }
    }

質問をします:

(1)これはどういう意味ですか?

(2)「黄色」の呼び方は?

(3)「黒」の呼び方は?

4

2 に答える 2

0

1_用

ここにあるのはサブタイプ多型です。あなたはAnimalのサブクラスを渡しています

2_、3_用

彼のメソッドに何かを渡す必要があります。オブジェクトを渡すことができます。例えば

System.out.println(dog.getColour());

これは、オブジェクトにメソッドがあることを前提としていgetColourます。動物の定義を提供していないので、これしか想定できません

于 2012-12-03T09:18:49.207 に答える
0

(1) これはどういう意味ですか?

メソッドfinstanceof、適切なタイプを選択するためにポリモーフィックメソッドを使用していないため、使用しています。

わからないことを具体的に教えてください。

(2)「黄色」の呼び方は?

名前を取得するために行ったのと同じようStringに、フィールド内のを取得する必要があると思います。dogdog.fieldNameNotShownInYourExamplea.name

(3) 「ぼけ」の呼び方は?

あるべきだと思います"black"が、2と同じです)

于 2012-12-03T09:19:14.167 に答える