继承与接口练习题
第五章 继承与接口 习题

1.写出程序的运行结果//扩展Point类public class Point{protected int x,y;public Point(int x, int y){this.x=x;this.y=y;}public boolean equals(Point p){return (x==p.x && y=p.y);}public int getX(){return x;}public int getY(){return y;}public string toString(){return new}}public class NamedPoint extends Point{final private String name;public NamedPoint(int x, int y, String name){super(x,y);=name;}public String getName(){return name;}public String toString(){return new String(name+"("+x+", "+y+")");}}public class TestNamedPoint{public static void main(String[] a){NamedPoint p=new NamedPoint(2,-3,"p");System.out.println("p:"+p);System.out.println("p.getName():"+p.getName());System.out.println("p.getX():"+p.getX());NamedPoint q=new NamedPoint(2,-3,"Q");System.out.println("q: "+q);System.out.println("q.equals(p):"+q.equals(p));}}2.//写出程序运行结果class ClassX{protected int m;protected int n;void f(){System.out.println("Now in ClassX.f().");m=22;}void g(){System.out.println("Now in ClassX.g().");n=44;}public String toString(){return new String("{ m="+m+", n="+n+"}");}}class ClassY extends ClassX{private double n;void g(){System.out.println("Now in ClassY.g().");n=3.14159265;}public String toString(){return new String("{ m="+m+", n="+n+"}");}}class TestClassY{public static void main(String[] a){ClassX x=new ClassX();x.f();x.g();System.out.println("x="+x);ClassY y=new ClassY();y.f();y.g();System.out.println("y= "+y);}}3.有接口Speaker包含一个方法speak(),实现以下分层结构:4. 有接口Geometric ,有3个方法getArea(), getCircumference(),getX()和getY()。
第七章继承多态练习题

第七章继承多态一、选择题:1、分析:class A {A() { }}class B extends A { //系统自动生成的构造方法和类的访问权限一样}哪两种说法是正确的? ( )A:类B的构造方法是public的. B:类B的构造方法包含对this()的调用. C:类B的构造方法没有参数. D:类B的构造方法包含对super()的调用.2、运行结果是:()class Base {Base() { System.out.print("Base"); }}public class Alpha extends Base {public static void main( String[] args ) {new Alpha();new Base();}}A: Base B: BaseBase C: 编译失败. D: 没有输出. E: 运行时异常. 3. 程序的运行结果是?()A: 编译失败. B: hello from a C: hello from bD: hello from b E: hello from ahello from a hello from b4. 运行结果是:()class TestSuper {TestSuper(int i) { }}class TestSub extends TestSuper{ }class TestAll {public static void main (String [] args) {new TestSub();}}A: 编译失败. B: 程序运行没有异常.C: 第7行抛出异常. D: 第2行抛出异常.5. 程序的运行结果是?()A: 0 B: 1 C: 2 D: 编译失败.6. 对于语句"B is a D" 和"B has a C",一下哪两种说法是正确的? ( ) A:D是B. B:B是D. C:D是C. D:B是C. E:D继承B.F:B 继承D.7. 运行结果是?()A: 1 B: 2 C: 第8行编译失败. D: 第14行编译失败.8. 分析:public class ConstOver {public ConstOver(int x, int y, int z) {}}哪两个是对ConstOver 的构造方法的重载? ( )A:ConstOver() { } B:protected int ConstOver() { }C:private ConstOver(int z, int y, byte x) { }D:public Object ConstOver(int x, int y, int z) { }E:public void ConstOver(byte x, byte y, byte z) { }9. 运行结果是?()A: 4,4 B: 4,5 C: 5,4 D: 5,5 E: 编译失败.10. 分析:public class X {public X aMethod() { return this;}}1) public class Y extends X {2)3) }在第2行可以插入哪两项? ( )A:public void aMethod() { } B:private void aMethod() { }C:public void aMethod(String s) { } D:private Y aMethod() { return null; } E:public X aMethod() { return new Y(); }11. 运行结果是?()A: 4,4 B: 4,5 C: 5,4 D: 5,5 E: 编译失败.12. 以下哪两个重载了方法setVar()? ( )public class MethodOver {public void setVar(int a, int b, float c) {}}A:private void setVar(int a, float c, int b) { } B:public int setVar(int a, float c, int b) {return a;}C:protected void setVar(int a, int b, float c) { } D:public int setVar(int a, int b, float c) {return a;}E:protected float setVar(int a, int b, float c) {return c;}13. 分析:1) class BaseClass {2) private float x = 1.0f;3) protected void setVar(float f) { x = f; }4) }5) class SubClass extends BaseClass {6) private float x = 2.0f;7) // insert code here8) }在第7行插入哪两个覆盖了方法setVar()? ( )A:void setVar(float f) { x = f; } B:public void setVar(int f) { x = f; } C:public void setVar(float f) { x = f; } D:public double setVar(float f){ return f; }E:public final void setVar(float f) { x = f; } F:protected float setVar() { x = 3.0f; return 3.0f; }14. 运行结果是?( )A: 1 B: 2 C: 运行时异常. D: 第8行编译错误. E: 第14行编译错误.15. 分析:class A {protected int method1(int a, int b) { return 0; }}在A的子类中,以下哪两个方法是合法的? ( )A:public int method1(int a, int b) { return 0; } B:private int method1(int a, long b) { return 0; }C:private int method1(int a, int b) { return 0; } D:public short method1(int a, int b) { return 0; }E:static protected int method1(int a, int b) { return 0; }16. 分析:1) public abstract class Test {2) public abstract void methodA();3)4) public abstract void methodB()5) {6) System.out.println("Hello");7) }8) }哪两种改法,可以使程序通过编译? ( )A:给方法methodA()加方法体C:在Test的声明中去掉abstractB:用";"替换第5-7行D:在方法methodA()的声明中去掉abstract E: 在方法methodB()的声明中去掉abstract17. 运行结果是:()1) abstract class AbstractIt {2) abstract float getFloat();3) }4) public class AbstractTest extends AbstractIt {5) private float f1 = 1.0f;6) private float getFloat() { return f1; }7) }A: 编译成功. B: 运行时异常. C: 第2行编译失败. D: 第6行编译失败.18. 在接口中哪两个方法的声明是合法的? ( )A:void method1(); B:public void method2(); C:static public void method5();D:protected void method3(); E:final public void method4();19. 分析:1) public interface Foo {2) int k = 4;3) }哪三项与第2行等价? ( )A:final int k = 4; B:public int k = 4; C:static int k = 4;D:abstract int k = 4; E:volatile int k = 4; F:protected int k = 4;20. 分析:interface Inter { }class A implements Inter { }class B extends A {B() {A[] arr = new A[10];boolean b1 = this instanceof Inter;boolean b2 = arr instanceof Object;System.out.println("b1 = " + b1 + ", b2 = " + b2);}}创建B的对象时会输出?( )A: 编译失败. B: b1 = true, b2 = true C: b1 = true, b2 = falseD: b1 = false, b2 = true E: b1 = false, b2 = false21. 哪一个能通过编译?()A: new Animal().soundOff(); B: Lion l = Alpha1.get("meat eater");C: Elephant e = new Alpha1(); D: new Alpha1().get("veggie").soundOff();22. 分析:class Passenger { }class Engine { }interface TransportVehicle {void loadPassengers();}interface Helicopter extends TransportVehicle {int flyIt( String direction );}abstract class JetStream implements Helicopter { }哪种说法是正确的?()A: TransportVehicle has a Passenger. B: 类Engine在类JetStream中.C: 接口TransportVehicle可以形成多态的基础.D: 继承JetStream的非抽象类可以随意声明方法loadPassengers().23. 哪三个是"is a" 关系? ( )A:public class X { } B:public interface Shape { }public class Y extends X { } public interface Rectangle extends Shape{ }C:public interface Color { } D:public class Species { }public class Shape { private Color color; } public class Animal { private Species species; }E:public class Person { } F:interface Component { }public class Employee { class Container implementsComponent {public Employee(Person person) { } private Component[] children;} }24. 运行结果是:()public interface Test {int frood = 42;}class TestImpl implements Test {private static int frood;public static void main(String[] args) {System.out.println(++frood);}}A: 0 B: 1 C: 42 D: 43 E: 编译失败. F: 运行时异常.25. 运行结果是?()A: 5 B: 10 C: 编译失败. D: 运行时异常.26. 运行结果是:()1) public class Test {2) public static void main(String args[]) {3) class Foo {4) public int i = 3;5) }6) Object o = (Object)new Foo();7) Foo foo = (Foo)o;8) System.out.println("i = " + foo.i);9) }10) }A: i = 3 C: 第6行抛出ClassCastException异常.B: 编译失败. D: 第7行抛出ClassCastException异常.27. 分析:String s = "abcde";Object ob = (Object)s;if (ob.equals(s)) {System.out.println("AAAA");} else {System.out.println("BBBB");}if (s.equals(ob)) {System.out.println("CCCC");} else {System.out.println("DDDD");}输出哪两行? ( )A:AAAA B:BBBB C:CCCC D:DDDD二、简答题1. 简述类与类之间的关系2. 简述继承的基本概念及继承的过程3. 简述方法重写以及方法重载与方法重写的区别4. 简述super关键字的用法5. 简述重写equals方法的步骤6. 简述instanceof关键字的用法7. 简述接口和抽象类的区别8. 简述什么是多态三、编程题1. 设计一个学生类Student,包括的属性有姓名name,年龄age,学位degree。
JAVA面向对象基础测试题,继承,封装,多态等测试题

JAVA面向对象基础测试题提示:本题为第一阶段,JAVA面向对象基础部分练习题,包括对象,类,继承,封装,多态,接口,内部类等等,java 核心基础,适合初学者对面向对象基础的知识进行测试,以便查漏补缺。
1.程序执行的结果是:()。
01public class Point{02int y = 7;03public void step(int y) {04y += y;05System.out.println(y);06}07public static void main(String[] args) {08Point p = new Point();09p.step(10);10}11}A.14B.20C.10D.17正确答案: B 解析:2.程序的执行结果是:()。
01public class Question {02private int num;03public static void main(String [] args){ 04Question q = new Question();05q.num=13;06update(q);07System.out.println(q.num);08}09public static void update(Question q){ 10q.num=9;11}12}A.13B.9C.0D.4正确答案: B 解析:程序执行的结果是:()。
01public class Answer {02public static void main(String[] args) {03int score = 20;04Answer ans= new Answer();05ans.add(score);06System.out.println(" main :score = " + score);07}08void add(int score) {09System.out.println(" add :score=" + score++);10}11}A.1add:score=212main:score = 21 B.1add:score=202main:score = 21 C.1add:score=212main:score = 20 D.1add:score=202main:score = 20 正确答案: D 解析:3.下列代码编译或运行的结果是:()。
接口习题

一.单选题1.JAVA语言的类间的继承关系是()。
A多重的B.单重的C.线程的D.不能继承2.以下关于JAVA语言继承的说法正确的是()。
A.Java中的类可以有多个直接父类B.抽象类中不能有子类C.JAVA中的接口支持多继承D.最终类可以作为其他类的父类3.下列选项中,用于定义接口的关键字是()。
A)interface B)implements C)abstract D)class4.下列选项中,用于实现接口的关键字是()。
A)interface B)implements C)abstract D)class5.以下哪个接口的定义是正确的?A)interface B{void print() { } ;}B)abstract interface B { void print() ; }C)abstract interface B extends A1,A2 { abstract void print(){ };D)interface B { void print();}6.定义一个接口时,下列哪个关键字用不到?A)public B)extends C)interface D)class7.在使用interface声明一个接口时,只可以使用哪个修饰符修饰该接口。
A)private B)protected C)private或者protected D)public8.下列类头定义中,错误的是?A)public x extends yB)public class x extends yC)class x extends y implements y1D)class x9.下列叙述正确的是?A)Java中允许多重继承B)Java一个类只能实现一个接口C)Java中只能单重继承D)Java中一个类可以继承多个抽象类10.现有类A和接口B,以下描述中表示类A实现接口B的语句是()。
A.class A implements BB.class B implements AC.class A extends BD.class B extends A二.填空题1.接口中的所有属性均为__public____、___static___和__final_。
JAVA复习习题(继承)

JAVA复习习题(继承)类的继承习题一、选择题1. Java语言的类间的继承关系是( B )。
A) 多重的B) 单重的C) 线程的D) 不能继承2. 以下关于Java语言继承的说法正确的是( C )。
A)Java中的类可以有多个直接父类B)抽象类不能有子类C)Java中的接口支持多继承D)最终类可以作为其它类的父类3. 现有两个类A、B,以下描述中表示B继承自A的是(D)。
A) class A extends B B) class B implements AC) class A implements B D) class B extends A4. 下列选项中,用于定义接口的关键字是( A)。
A)interface B) implements C) abstract D) class5. 下列选项中,用于实现接口的关键字是( B)。
A)interface B) implements C) abstract D) class6. Java语言的类间的继承的关键字是( B )。
A) implements B) extends C) class D) public7. 以下关于Java语言继承的说法错误的是( A )。
A)Java中的类可以有多个直接父类B)抽象类可以有子类C)Java中的接口支持多继承D)最终类不可以作为其它类的父类8. 现有两个类M、N,以下描述中表示N继承自M的是(D)。
A) class M extends N B) class N implements MC) class M implements N D) class N extends M9. 现有类A和接口B,以下描述中表示类A实现接口B的语句是(A)。
A) class Aimplements B B) class B implements AC) class Aextends B D) class B extends A10. 下列选项中,定义抽象类的关键字是( C)。
继承、多态、接口练习

总结
重写的关键字是什么? 抽象类是不是必须有抽象方法? 如果抽象类是People,子类是Employee和Manager, 下面代码是否正确
People people=new People(); People people=new Employee();√ Employee employee=new Manager();
简单工厂中用户得到的产品是父类(抽象类)对象 还是子类(实体类)对象?
接口 接口就是一组约定和规范
定义接口使用关键字interface 接口中只能有属性和方法 接口中所有属性都是公有的,没有实现的。Public省略不 写,get和set都没有是实现 接口中所有的方法都是公有抽象的。Public和abstract都省 略不写 实现接口用:,接口可以多继承 如果一个类不是抽象类,又继承了某接口,那么它必须实 现接口中所有的抽象方法。实现时,要显式地加上public。
公有的没有实现的属性 公有的抽象的方法
4、接口中public 和abstract都省略不写。
十一、用接口Figure规范化SanJiaoXing类 1、定义整型字段d、h;分别表示底和高 2、规范化d和h为属性B1和B2 3、修改构造方法 4、实现抽象方法area 知识点: 1、实现接口用: 2、实现接口的属性要显示地加上public 3、实现接口的抽象方法要显示地加上public,无须override 关键字。
初始状态
组合框点开状态
初值为
只读
选择了矩形后状态
选择了三角形后状态 只读
只读
在组合框中选择不同的形状,让不同的文本框处于可用状态。
五、制作界面
三角形面积
矩形面积
梯形面积 点击求面积按钮,则根 据组合框中选择的形状, 构造不同的形状对象, 并在多行文本区显示当 前图形对象的面积。
继承练习题

继承练习题一、选择题1. 关于Java中的继承说法正确的是:A. 子类可以继承父类的私有成员B. 子类可以继承父类的protected成员C. 子类可以继承父类的静态成员D. 子类不能继承父类的构造方法2. 在Java中,下列哪个关键字用于声明继承?A. extendsB. implementsC. interfaceD. class3. 如果一个类声明为final,那么它:A. 可以被继承B. 不能被继承C. 可以被实例化D. 不能被实例化4. 关于Java中的方法重写,下列说法正确的是:A. 重写的方法必须具有相同的返回类型B. 重写的方法可以有不同的访问权限C. 重写的方法可以抛出新的异常D. 重写的方法必须抛出与父类方法相同的异常5. 在Java中,下列哪个操作是不合法的?A. 子类覆盖父类的静态方法B. 子类覆盖父类的非静态方法C. 子类覆盖父类的私有方法D. 子类覆盖父类的protected方法二、填空题6. 在Java中,如果一个类没有明确指定继承哪个类,那么它默认继承______类。
7. 在Java中,使用______关键字可以实现对父类方法的重写。
8. 如果子类要调用父类的构造方法,可以使用______关键字。
9. 在Java中,子类可以______父类的成员变量和方法。
10. 在Java中,如果子类和父类都有相同的成员变量,那么在子类中访问这个变量时,默认访问的是______。
三、判断题11. 在Java中,一个类只能继承一个类,但可以实现多个接口。
()12. 子类可以继承父类的私有成员变量,但不能继承私有方法。
()13. 在Java中,子类必须显式调用父类的构造方法。
()14. 如果父类的构造方法有参数,那么子类的构造方法也必须有相同参数的构造方法。
()15. 在Java中,子类可以覆盖父类的静态方法。
()四、编程题16. 定义一个父类`Animal`,包含一个方法`makeSound()`。
继承面试题

6以下是练习题:1. 下面描述函数重写错误的是 A. 要有子类继承或实现BB. 子类方法的权限必须大于等于父类的权限C. 父类中被private权限修饰的方法可以被子类重写D. 子类重写接口中的抽象方法,子类的方法权限必须是public的2. 下列说法哪个正确?(B C)A. 一个程序可以包含多个源文件B. 一个源文件中只能有一个公共类C. 一个源文件中可以有多个类D. 一个源文件只能供一个程序使用3. 下面关于类的设计思路描述错误的是 ( B )A. 根据需求写出类所包含的字段(成员变量)B. 根据面向对象的思想要求,所有的字段都必须私有化C. 封装之后的字段在本类内也必须使用get/set方法D. 按需求可添加若干构造方法4. 关于封装下面介绍错误的是(D )A. 封装将变化隔离B. 封装提高重用性C. 封装提高安全性D. 只有被private修饰才叫做封装5. 试图编译运行下面的代码会发生什么情况Dpublic class MyClass{static int i;public static void main(String[] args){System.out.println(i); } }A. 错误,变量i没有被初始化B. 输出nullC. 输出1D. 输出06. 下面对static的描述错误的是A. 静态修饰的成员变量和成员方法随着类的加载而加载B. 静态修饰的成员方法可以访问非静态成员变量C. 静态修饰的成员可以被整个类对象所共享D. 静态修饰的成员变量和成员方法随着类的消失而消失7. 在Java中,下面对于构造函数的描述正确的是(D )A. 类必须显式定义构造函数B. 构造函数的返回类型是voidC. 构造函数和类有相同的名称,并且不能带任何参数D. 一个类可以定义多个构造函数8. 给定java代码,如下:abstract class Shape { abstract void draw( ); }要创建Shape类的子类Circle,以下代码正确的是(D)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/********
以下作业在代码编写过程中要按照注释规范对类,方法,属性,局部变量进行注释 关键代码片段也需要进行注释说明 ********/
1、 根据如下图示,使用继承编写出对应的程序。
然后分别创建对应的车辆,调用方法输出
车辆信息,并测试每辆车包含的其他方法。
尽量让你的程序变得有意思一些(属性和方法可添加和扩展)。
2、 请编码实现动物世界的继承关系:
动物(Animal )具有行为:吃(eat )、睡觉(sleep ) 动物包括:兔子(Rabbit ),老虎(Tiger )
这些动物吃的行为各不相同(兔子吃草,老虎吃肉);但睡觉的行为是一致的。
请通过继承实现以上需求,并编写测试类AnimalTest 进行测试
3、 请使用接口编码实现如下需求:
乐器(Instrument )分为:钢琴(Piano)、小提琴(Violin) 各种乐器的弹奏( play )方法各不相同。
编写一个测试类InstrumentTest ,要求:
编写方法testPlay ,对各种乐器进行弹奏测试。
要依据乐器的不同,进行相应的弹奏。
在main 方法中创建不同的乐器对象,通过testPlay 的弹奏测试方法进行测试。
4、 定义Fight 接口,其中有一个打人的动作(fight )。
让胖人(FatFat )和瘦人(Thinthin )
分别实现打人接口,但具有不同的打人结果:胖人打人疼,瘦人打人不疼。
编写测试类,使用多态的方式对不同人打人的动作进行测试,输出胖人和瘦人打人的动作。
5、 医生(Doctor )有姓名(name )、编号(idNumber )和地址(address )等基本信息,
还都具有量体温 (temperature)和开药(giveMedicine )的方法。
巴士是汽车吗? 卡车是汽车吗? 出租车是汽车吗?
最大载客数量
报站 让座提示 引擎数量 外观颜色 品牌 车牌 刹车 加速
汽车
最大载重量
卸货 所属公司 最大载客数量
打发票
行为
请问:出租车包含哪些属性和行为呢?
医生又分为普通医生和主治医生。
普通医生具有上述所有信息。
主治医生除以上基本信息之外还有特有的信息:专业(speciality ),以及特有的方法会诊(consultation )。
重写开药(giveMedicine )方法,普通医生只能开具普通药物,主治医生除了开具普通药物之外还可以开具处方药。
请根据他们之间的关系,创建一个Doctor 类,包含有关医生的基本信息,在利用继承写一个普通医生(CommDocotor )和主治医生(AdvanceDoctor ),并创建测试类Test.java 在main 方法中利用这些类的对象测试显示他们的各自的信息。
6、 用面向对象的思想编写类,描述汽车,宝马,奔驰车和驾驶员的关系.
提示:宝马和奔驰继承自汽车类,具有启动,运行,停止的方法。
驾驶员具有驾驶方法,可以通过驾驶方法驾驶各种类型的汽车。
7、 根据如下图示,使用接口编写出对应的程序。
然后创建一个负责打印的测试类,并创建一个测试打印方法,将打印机接口作为参数,可以使用传入的打印机打印信息。
分别创建不同类型的打印机对象,然后通过打印测试类的测试打印方法进行测试,调用打印机的打印方法。
体会多态的优点。
8、 电脑主板上的PCI 插槽的规范就类似于Java 接口 。
彩色打印机
打印机
黑白打印机
打印效果:彩色
打印效果:黑白
打印
打印
创建一个PCI 接口:包括start 启动,和stop 停止方法。
创建声卡SoundCard.java 实现该接口,启动输出“Du du...”,停止输出“Sound stop ” 网卡SoundCard 实现该接口,启动输出“Send...”,停止输出“Network stop ” 显卡DisplayCard 实现该接口,启动输出“show...”,停止输出“Display stop ” 然后使用Java 接口作为类型,创建对应的对象,调用相应的方法实现测试。
9、 升级第7题题,创建MainBoard 主板类,创建usePCICard 方法,模拟主板上可以插
入任意符合PCI 插槽规范的卡,将PCI 接口作为参数类型,调用对应的启动和停止方法。
然后创建不同的的PCI 对象,使用usePCICard 测试,体会通过更换实现接口的类来更换系统的实现。
10、 升级第1题,为汽车添加运行状况方法,重写车辆的运行状况方法:出租车输出,
正在送乘客前往机场;卡车输出,疯狂拉土车正在全速奔跑;巴士输出,人太多了坐下一辆。
分别实例出租车,卡车,巴士对象,并测试输出车辆信息,调用方法测试不同对象的方法。
定义跟踪车辆运行状况的类CheckCar ,再创建方法checkCarState ,使用多态实现对各种车辆运行状况的检查。
声卡
显卡
网卡 每种卡的内部结构都不相同,可以把声卡、
网卡、显卡都插在PCI 插槽上,而不用担心哪个插槽是专门插哪个卡的
主板
11、定义常量接口Constant,在其中定义如下系统中所需的静态常量。
3.1415926; // 圆周率
8844.43; // 喜马拉雅
180; // 三角形内角和
300000; // 光速,单位(公里/秒)
"你好"; //中文问候
12、编写接口Addition,定义add方法,参数是两个int类型,编写此接口的两种实现,
一种是将参数相加后输出,一种是相连后输出。
编写测试类进行测试。
13、鼠标(Mouse)和打印机(Printer)类都实现了USB接口,USB接口具有输入(in)
和输出(out)的动作。
鼠标具有属性整型的x和y坐标,还具有布尔型的left和right属性,代表按下了左键和右键。
鼠标的输出方法可以输出鼠标的品牌,当前按下了左键还是右键,以及当前的x和y坐标。
输入方法不具体实现。
打印机具有属性字符串型的打印内容,输出方法可以提示**品牌的打印机打印内容成功。
打印机还有打印print()方法,可以输出当前的的打印内容
14、二战期间,战争国间谍活动非常密切,所有英国间谍(BritishSpy)有讲英语的特
点(speak()方法),所有德国间谍(GermanSpy)都具有讲德语的特点(sprechen方法)。
还有一种双重间谍,既可以讲英语又可以讲德语,可以分别输出Hello和Gutentag。
情报机关(Agency)具有两个方法一个是军情5处(toMI5)的间谍测试方法,可以传入英国间谍,并调用讲英语的方法,输出结果;另一个是德国情报处(inGermany)的间谍测试方法,可以传入德国间谍,并调用讲德语的方法,输出结果。
创建德国间谍和英国间谍分别进行测试。
创建双重间谍进行测试,看是否能同时通过军情5处和德国情报处的间谍检测。
提示:定义两个接口BritishSpy(英国间谍)和GermanSpy(德国间谍)。
15、使用面向对象的思想实现龟兔赛跑。
提示:创建Rabbit和Tortoise类分别代表兔子和乌龟,分别具有属性speed代表兔子和乌龟的速度;具有方法run代表跑步动作,run方法有一个类型为double的参数,代表跑步的长度,通过长度除以速度计算出跑步所需的时间,并输出。
创建Match类代表比赛类,定义length属性代表比赛的跑步长度,定义begin方法,将兔子和乌龟作为参数传入,在方法中分别调用兔子和乌龟的跑步方法,输出跑步所需的时间。
创建测试类进行测试
输出结果:。