一、問答題
1.不可以。
2.是。
3.不繼承。
4.聲明與父類同名的成員變量。
5.子類重寫的方法類型和父類的方法的類型一致或者是父類的方法的類型的子類型,重寫的方法的名字、參數(shù)個(gè)數(shù)、參數(shù)的類型和父類的方法完全相同。重寫方法的目的是隱藏繼承的方法,子類通過方法的重寫可以把父類的狀態(tài)和行為改變?yōu)樽陨淼臓顟B(tài)和行為。
6.不可以。
7.Abstract類。
8.上轉(zhuǎn)型對(duì)象不能操作子類新增的成員變量,不能調(diào)用子類新增的方法。上轉(zhuǎn)型對(duì)象可以訪問子類繼承或隱藏的成員變量,可以調(diào)用子類繼承的方法或子類重寫的實(shí)例方法。
9.通過重寫方法。
10.面向抽象編程目的是為了應(yīng)對(duì)用戶需求的變化,核心是讓類中每種可能的變化對(duì)應(yīng)地交給抽象類的一個(gè)子類類去負(fù)責(zé),從而讓該類的設(shè)計(jì)者不去關(guān)心具體實(shí)現(xiàn)。
二、選擇題
1.C。2.D。3.CD。4.D。5.B。6.B。7.D。8.B。9.A。
三、閱讀程序
1.【代碼1】:15.0?!敬a2】:8.0。
2.【代碼1】:11。【代碼2】:11。
3.【代碼1】:98.0。【代碼2】:12。【代碼3】:98.0?!敬a4】:9。
4.【代碼1】:120?!敬a2】:120。【代碼3】:-100。
四、編程題
Animal.java
public abstract class Animal?{
????public abstract void cry();
????public abstract String getAnimalName();
}
Simulator.java
public class Simulator {
???public void playSound(Animal animal) {
???????System.out.print("現(xiàn)在播放"+animal.getAnimalName()+"類的聲音:");
???????animal.cry();
???}
}
Dog.java
public class Dog extends Animal {
???public void cry() {
??????System.out.println("汪汪...汪汪");
???} ?
???public String getAnimalName() {
??????return "狗";
???}
}
Cat.java
public class Cat extends Animal {
???public void cry() {
??????System.out.println("喵喵...喵喵");
???} ?
???public String getAnimalName() {
??????return "貓";
???}
}
Application.java
public class Example5_13 {
???public static void main(String args[]) {
??????Simulator simulator = new Simulator();
??????simulator.playSound(new Dog());
??????simulator.playSound(new Cat());
???}
}
一、問答題
1.不能。
2.不能。
3.可以把實(shí)現(xiàn)某一接口的類創(chuàng)建的對(duì)象的引用賦給該接口聲明的接口變量中。那么該接口變量就可以調(diào)用被類實(shí)現(xiàn)的接口中的方法。
4.不可以。
5.可以。
二、選擇題
1.D。2.AB。3.B。
三、閱讀程序
1.【代碼1】:15.0。【代碼2】:8。
2.【代碼1】:18?!敬a2】:15。
四、編程題
Animal.java
public interface?Animal?{
????public abstract void cry();
????public abstract String getAnimalName();
}
Simulator.java
public class Simulator {
???public void playSound(Animal animal) {
???????System.out.print("現(xiàn)在播放"+animal.getAnimalName()+"類的聲音:");
???????animal.cry();
???}
}
Dog.java
public class Dog implements Animal {
???public void cry() {
??????System.out.println("汪汪...汪汪");
???} ?
???public String getAnimalName() {
??????return "狗";
???}
}
Cat.java
public class Cat implements Animal {
???public void cry() {
??????System.out.println("喵喵...喵喵");
???} ?
???public String getAnimalName() {
??????return "貓";
???}
}
Application.java
public class Example5_13 {
???public static void main(String args[]) {
??????Simulator simulator = new Simulator();
??????simulator.playSound(new Dog());
??????simulator.playSound(new Cat());
???}
}