要求:两道题的文件(包含源程序和.class文件)放在一个文件夹里,文件夹用“学号最后两位+姓名”命名,如:“01张三”。
1、医生有姓名(name)、编号(idNumber)和地址(address)等基本信息,医生又分为专业医生和非专业医生。非专业医生所具有的信息与上述的一样,但专业医生除了具有上述的基本信息外,还有特有的信息:专业(speciality)。试根据他们之间的关系,创建一个Doctor类,以包含有关医生的基本信息,再利用继承创建一个非专业医生类NonSpecialist和一个专业医生类Specialist,并利用这些类的对象显示他们各自的信息。
class Doctor {
protected String name; protected int idNumber; protected String address;
public Doctor(String name, int idNumber, String address) { }
this.name = name;
this.idNumber = idNumber; this.address = address;
public String getAddress() { return address; }
public int getIdNumber() { return idNumber; }
public String getName() { }
return name;
}
class NonSpecialist extends Doctor{
} }
public NonSpecialist(String name, int idNumber, String address) { }
super(name, idNumber, address);
class Specialist extends Doctor{
private String specialty;
public Specialist(String name, int idNumber, String address,String specialty) { super(name, idNumber, address); }
public String getSpecialty() { return specialty; }
this.specialty = specialty;
public class DoctorTest{ public static void main(String[] args) { NonSpecialist a1=new NonSpecialist(\张三\广州\ Specialist a2 = new Specialist(\李四\广州\妇科\
system.out.println(a1.getName() + \ \ \ system.out.println(a2.getName() + \ \ \\ \ } }
2、编写一个程序,用于重写父类Addition中名为add()的抽象方法。add()方法在NumberAddtion类中将两个数字相加,而在TextConcatenation类中则连接两个String(字符串)。声明属性并在父类Addition的构造方法中初始化属性。
abstract class Addition {
int a, b; String s1, s2; public Addition() {
a = 2; b = 3;
s1 = \s2 = \
}
abstract void add(); }
class NumberAddition extends Addition { }
int c; void add() { }
c= a + b;
class TextConcatenation extends Addition { }
public class AdditionTest { public static void main(String[] args) { }
}
NumberAddition e1 = new NumberAddition(); TextConcatenation e2 = new TextConcatenation(); system.out.println(e1.c); system.out.println();
system.out.println(e2.s3); String s3; void add() { s3= s1 + s2; }