第七章
Reuse Class
CHNMSCS
分享是一种快乐,
脚踏实地,仰望星空
展开
-
Java 习题 (74)
题目: 创建一个名为Amphibian的类。由此继承产生一个称为Frog的类。在基类中设置适当的方法。在main()中,创建一个Frog并向上转型至Amphibian,然后说明所有方法都可工作。使Frog覆盖基类中方法的定义。 解答: class Amphibian { public void play() { System.out.println("Playing..."); } public void sleep() { System.out.p原创 2020-08-10 07:07:02 · 558 阅读 · 0 评论 -
Java 习题 (73)
题目: 创建一个名为Amphibian的类。由此继承产生一个称为Frog的类。在基类中设置适当的方法。在main()中,创建一个Frog并向上转型至Amphibian,然后说明所有方法都可工作。 解答: 如果不了解什么是向上转型,可以点击这里了解向上转型 继续解答上面的题目: class Amphibian { public void play() { System.out.println("Playing..."); } public void sleep() {原创 2020-08-10 06:43:35 · 281 阅读 · 0 评论 -
Java 习题 (72)
题目: 在包中编写一个类,类应具备一个protected方法。在包外部,试着调用该protected方法并解释其结果。然后,从你的类中继承产生一个类,并从该导出类的方法内部调用该protected方法。 解答: package seven.fifteen; public class Fifteen { protected void test() { System.out.println("This is the protected method"); } } packag原创 2020-08-10 05:13:08 · 356 阅读 · 0 评论 -
Java 习题 (71)
题目: 在Car.java中给Engine添加一个service()方法,并在main()中调用该方法。 解答: 先提供原先的Car.java代码: class Engine { public void start() {} public void rev() {} public void stop() {} } class Wheel { public void inflate(int psi) {} } class Window { public void r原创 2020-08-10 03:32:45 · 238 阅读 · 0 评论 -
Java 习题 (70)
题目: 创建一个类,它应带有一个被重载了三次的方法。继承产生一个新类,并添加一个该方法的新的重载定义,展示这四个方法在导出类中都是可以使用的。 解答: class base { void func1() { System.out.println("This is the first function in base class"); } int func1(int i) { System.out.println("This is the second原创 2020-08-10 02:43:32 · 340 阅读 · 0 评论 -
Java 习题 (69)
题目: 创建一个Root 类,令其含有名为Component1, Component2, Component3的类的各一个实例(这些由你来写)。从Root中派生一个类Stem, 也含有上述各 ”组成部分“。 所有的类都应带有可打印出类的相关信息的默认构造器。将一个适当的**dispose()**方法的层次结构添加到所有类中。 解答: class Component1 { Component1() { System.out.println("Component1 Constructor原创 2020-08-09 13:52:26 · 213 阅读 · 0 评论 -
Java 习题 (68)
题目: 修改Detergent.java, 让它使用代理。 解答: 先展示Detergent.java 代码: // Detergent.java 文件 class Cleanser { private String s = "Cleanser"; public void append(String a) { s += a; } public void dilute() { append(" dilute() "); }原创 2020-08-07 06:33:50 · 203 阅读 · 0 评论 -
Java 习题 (67)
题目: 创建一个Root 类,令其含有名为Component1, Component2, Component3的类的各一个实例(这些由你来写)。从Root中派生一个类Stem, 也含有上述各 ”组成部分“。 所有的类都应带有可打印出类的相关信息的非默认构造器。 解答: class Component1 { Component1(int i) { System.out.println("Component1 Constructor: " + i); } } class Com原创 2020-08-04 12:41:16 · 267 阅读 · 0 评论 -
Java 习题 (66)
题目: 创建一个Root 类,令其含有名为Component1, Component2, Component3的类的各一个实例(这些由你来写)。从Root中派生一个类Stem, 也含有上述各 ”组成部分“。 所有的类都应带有可打印出类的相关信息的默认构造器。 解答: class Component1 { Component1() { System.out.println("Component1 Constructor"); } } class Component2 {原创 2020-08-04 12:32:30 · 306 阅读 · 0 评论 -
Java 习题 (65)
题目: 创建一个基类,它仅有一个非默认构造器;再创建一个导出类,它带有默认构造器和非默认构造器。在导出类的构造器中调用基类的构造器。 解答: class A { A(int i) { System.out.println("A constructor - " + i); } } class B extends A { B() { super(11); } B(int i) { super(i); Sy原创 2020-08-04 11:51:39 · 222 阅读 · 0 评论 -
Java 习题 (64)
题目: 创建两个带有参数的构造器的类A和类B。从A中继承产生一个名为C的新类,并在C内创建一个B类的成员。为C写一个构造器,并在其中执行所有的初始化。 解答: class A { A(int i) { System.out.println("A constructor - " + i); } } class B { B(int i) { System.out.println("B constructor - " + i); } } clas原创 2020-08-04 11:43:31 · 164 阅读 · 0 评论 -
Java 习题 (63)
题目: 用程序来证明得在导出类中调用基类构造器,编译器将“抱怨”无法找到符合基类形式的构造器。而且,调用基类构造器必须是你在导出类构造器中要做的第一件事 (如果你做错了,编译器会提醒你)。 解答: class Game { Game(int i) { System.out.println("Game constructor"); } } class BoardGame extends Game { BoardGame(int i) { // super原创 2020-08-04 10:38:22 · 138 阅读 · 0 评论 -
Java 习题 (62)
题目: 创建两个带有默认构造器 (空参数列表) 的类A和类B。从A中继承产生一个名为C的新类,并在C内创建一个B类的成员。不要给C编写构造器。创建一个C类的对象并观察其结果。 解答: class A { A() { System.out.println("A constructor"); } } class B { B() { System.out.println("B constructor"); } } class C extends原创 2020-08-04 07:24:37 · 232 阅读 · 0 评论 -
Java 习题 (61)
题目: 证明基类构造器:(a) 总是会被调用;(b) 在导出类构造器之前被调用。 解答: class Base { Base() { System.out.println("Base constructor"); } } class Derived extends Base{ Derived() { System.out.println("Derived constructor"); } } public class exerciseThr原创 2020-08-04 07:11:36 · 165 阅读 · 0 评论 -
Java 习题 (60)
题目: 证明你不为Cartoon() 创建构造器,编译器也会为你合成一个默认的构造器,该构造器将调用基类的构造器。 解答: class Art { Art() { System.out.println("Art constructor"); } } class Drawing extends Art { Drawing() { System.out.println("Drawing"); } } class Cartoon extends原创 2020-08-04 05:33:17 · 153 阅读 · 0 评论 -
Java 习题 (59)
题目: 从Detergent中继承产生一个新的类。覆盖scrub() 并添加一个名为sterilize() 的新方法。 解答: 先把Detergent类库代码放出来: class Cleanser { private String s = "Cleanser"; public void append(String a) { s += a; } public void dilute() { append(" dilute() "); }原创 2020-08-04 03:39:50 · 180 阅读 · 0 评论 -
Java 习题 (58)
题目: 创建一个简单的类。在第二个类中,将一个引用定义为第一个类的对象。运用惰性初始化来实例化这个对象。 解答: package seven; class one { String s; public one(String s1) { s = s1; } public String toString() { return s; } public void setString(String snew) {原创 2020-08-03 12:57:46 · 224 阅读 · 0 评论