附录 实训参考答案
}
}
}
else System.out.println(\输入不正确,请正确输入!\
实训8 类的继承
实验内容
1.编写一个程序,首先创建一个员工类(employee),包含若干的成员。然后使用关键字extends另外创建“老板”类(manager),说明Java类的继承的关系。
2.编写一个小程序,在超类中定义一个以上的访问权限为private的成员变量和方法,以及访问权限为非private的方法。创建子类,试图访问超的这些成员,并解释所产生的现象。
3.编写一个程序,调用超类的构造函数来创建一个子类对象,子类能继承超类的构造函数吗? 参考答案
1.
class Employee{ private int id; private String name; public void setId(int id){ this.id=id; } public void setName(String name){ this.name=name; } }
class Manager extends Employee { public void setId(byte id){ this.id=id; } private int departmentID; public void setDepartmentID(int id){ departmentID=id; } }
269
Java语言程序设计基础 public class ExtendsExam1 { public static void main(String [] args) { Employee e=new Manager(); } } 2. class A{ private int a=10; int id=1; private void go(){ } public fun(){ return 20; } }
class B extends A{ }
public class ExtendsExam2{ public static void main(String [] args) { Employee e=new Manager(); System.out.println(\ System.out.println(\ System.out.println(\ System.out.println(\ } } 3.
class SuperClass {
int x;
SuperClass( ) { x=3; System.out.println(\}
void doSomething( ){ System.out.println(\
270
附录 实训参考答案 }
}
class SubClass extends SuperClass {
int x;
SubClass( ) {
super( ); x=5; System.out.println(\}
void doSomething( ) { super.doSomething( ); System.out.println(\ System.out.println(\} }
public class ExtendsExam3 {
public static void main(String args[]) { SubClass sub=new SubClass(); sub.doSomething(); } }
实训9 重载和覆盖
实验内容
1.编写一程序,要求创建一个类,类体包含有void receive(int i)、 void receive(int x, int y) 、void receive(double d)、void receive(String s)等方法,另外创建一个一个类文件调用该类里的不方法,从而实现重载方法。
2.编写一个程序,要求创建一个类,类体提供两个以上的自定义构造器,复制其中一个构造函数的某方面效果到另一个构造函数中,并在程序主入口处调用构造器来创建不同的对象实例。
3.编写一个程序,创建SuperClass,在这个类里建立一个终态方法,另创建一个类SubClass继承于SuperClass类,在该类中创建一个方法去覆盖超类的终态方法,然后试图调用该终态方法,并对所产生的现象作出解释。 参考答案
1.
class MethodOverload{ void receive(int i)
271
Java语言程序设计基础 { System.out.println(\ }
void receive(int x, int y) { System.out.println(\ }
void receive(double d) { System.out.println(\ }
void receive(String s) { System.out.println(\ } }
public class MethodOverloadExam1 {
public static void main(String args[]) { MethodOverload mo=new MethodOverload(); mo.receive(1); mo.receive(2,3); mo.receive(12.56); mo.receive(\ } } 2.
class ConstuctorOverloadExam {
int x,y;
ConstuctorOverloadExam() { x=0;
y=0; }
ConstuctorOverloadExam(int x, int y) { this.x=x; this.y=y; } }
272
附录 实训参考答案 3.
class SuperClass { int i=1; public final int fun() { return 1; } public void go() { System.out.println(fun()); } }
class SubClass extends SuperClass { int i=2; public int fun() { return 2; } }
public class MethodOverrideExma { public static void main(String [] args) { SuperClass s=new SubClass(); s.go(); } }
实训10 接口的实现
实验内容
1.编写一个程序,定义两个接口,接口可以不书写代码,另外定义两个接口实现单继承和多继承。
2.定义一个接口Volume,其中包含一个计算体积的抽象方法calculateVolume(),然后设计Circle和Rectangle两个类都实现接口的方法calculateVolume(),分别计算球体和长方形的体积。 参考答案
1.
273