1)定义一个People抽象类,在People类中声明两个属性:name和number,在People中定义一个有参构造方法,用于对People类中的属性进行初始化;在类中定义get方法,用于获取成员变量姓名和年龄值;在People类中声明一个say()方法。
(2)定义类Student,并继承People类,声明Student类的构造方法并重写People类中的say()方法,在方法中输出属性值及回答问题信息。
(3)定义类Teacher,并继承People。声明Teacher类的构造方法并重写People类中的say()方法,在方法中输出属性值及回答问题信息。
(4)定义主类测试类Peopletest,在测试类中分别使用向上转型的方式实例化两个People对象p1和p2,并分别使用p1和p2调用say()方法。
abstract class People{ String name,number; People(String name,String number){ this.name=name; this.number=number; } String getName(){ return name; } String getNumber(){ return number; } abstract void say(); } class Stundent extends People{ public Stundent(String name,String number) { super(name, number); } @Override void say() { System.out.println("\t\t\t\t"+"姓名:"+name+"\t\t\t\t"+"电话号码:"+number); } } class Teacher extends People{ public Teacher(String name,String number) { super(name, number); } @Override void say() { System.out.println("\t\t\t\t"+"姓名:"+name+"\t\t\t\t"+"电话号码:"+number); } } public class Peopletest { public static void main(String[]args) { Stundent p1 = new Stundent("张三","66666666"); Teacher p2=new Teacher("李四","20210316"); System.out.println("\t\t\t\t\t\t\t"+"个人信息表"+"\t\t\t\t\t\t\t"); p1.say(); p2.say(); } }