SCJP 1.6版考題 061
出自 陳富國維基館
Given two files, GrizzlyBear.java and Salmon.java: 1. package animals.mammals; 2. 3. public class GrizzlyBear extends Bear{ 4. void hunt() { 5. Salmon s = findSalmon(); 6. s.consume(); 7. } 8. } 1. package animals.fish; 2. 3. public class Salmon extends Fish { 4. public void consume() { /* do stuff */ } 5. } If both classes are in the correct directories for their packages, and the Mammal class correctly defines the findSalmon() method, which change allows this code to compile? A. add import animals. mammals.*; at line 2 in Salmon.java B. add import animals.fish.*; at line 2 in GrizzlyBearjava C. add import animals.fish.Salmon.*; at line 2 in GrizzlyBear.java D. add import animals. mammals.GrizzlyBear*; at line 2 in Salmon.java
解答
Ans: B
解說:
假如二個類別都在套件正確的目錄,並且Mammal 類別正確地定義findSalmon方法,那一項改變可讓這個程式可以被編譯? 物件參考s的型態是Salmon類別型態,要使用其中的consume方法,若是相同套件,直接就可以存取(同屬一個目錄空間), 但GrizzlyBear 與Salmon 在不同的套件,Salmon 在套件animals.fish下,因此要使用Salmon 類別有二個方式: 1.用全名 animals.fish.Salmon 2.先import animals.fish.*; 或import animals.fish.Salmon; 即可以在程式中直接使用Salmon,不用較冗長的全名模式。
|