1.人、学生和老师
-
设计一个类people,有数据成员:age(年龄,整型),name(姓名,string),行为成员:两个构造函数(一个默认,另一个有参数);void setValue(int m, string str)给age和name赋值;有一个void类型的抽象函数display()。
-
设计一个学生类student,公有继承类people,有私有成员:studentID(学号,整型),行为成员:两个构造函数(一个默认,另一个有参数);void setID(int m)给studentID赋值;display()函数输出学生的姓名,年龄,学号。
-
设计一个教师类teacher,公有继承类people,有私有成员:teacherID(工号,整型),行为成员:两个构造函数(一个默认,另一个有参数);void setID(int m)给teacherID赋值; display()函数输出教师的姓名,年龄,工号。
在main函数定义学生对象和教师对象,给对象初始化赋值或调用setValue()和setID()赋值,并输出学生和老师的信息。
1 import java.util.Scanner; 2 //父类People 3 abstract class People{ 4 protected int age; //年龄 5 protected String name; //姓名 6 public People() { 7 } 8 public People(int age, String name) { 9 this.age = age; 10 this.name = name; 11 } 12 public void setValue(int m,String str) { 13 age=m; 14 name=str; 15 } 16 //抽象函数 17 public abstract void display(); 18 } 19 //子类Student继承People类 20 class Student extends People{ 21 private int studentID; //学号 22 public Student() { 23 super(); 24 } 25 public Student(int age, String name,int studentID) { 26 super(age, name); 27 this.studentID=studentID; 28 } 29 public void setID(int m) { 30 studentID=m; 31 } 32 //实现抽象类 33 public void display() { 34 System.out.println("姓名:"+name); 35 System.out.println("年龄:"+age); 36 System.out.println("学号:"+studentID); 37 } 38 } 39 //子类Teacher继承People类 40 class Teacher extends People{ 41 private int teacherID; //工号 42 public Teacher() { 43 super(); 44 } 45 public Teacher(int age, String name,int teacherID) { 46 super(age, name); 47 this.teacherID=teacherID; 48 } 49 public void setID(int m) { 50 this.teacherID=m; 51 } 52 //实现抽象类 53 public void display() { 54 System.out.println("姓名:"+name); 55 System.out.println("年龄:"+age); 56 System.out.println("工号:"+teacherID); 57 } 58 } 59 public class Test { 60 public static void main(String[] args) { 61 String str; 62 int a,ID; 63 Scanner in=new Scanner(System.in); 64 Student s=new Student(18,"李明",20195555); 65 Teacher t=new Teacher(); 66 s.display(); 67 System.out.print("请输入教师的姓名、年龄和工号:"); 68 str=in.next(); 69 a=in.nextInt(); 70 ID=in.nextInt(); 71 t.setValue(a, str); 72 t.setID(ID); 73 t.display(); 74 } 75 }
2.动物类
定义猫科动物Animal类,由其派生出猫类(Cat)和豹类(Leopard),在Animal类中定义抽象函数,输出“My name is Animal”,在派生类中分别重新定义该函数,显示“My name is **”,其中**为各自类名。
1 //父类Animal 2 class Animal{ 3 public void display() { 4 System.out.println("My name is Animal"); 5 } 6 } 7 //子类Cat继承Animal类 8 class Cat extends Animal{ 9 public void display() { 10 System.out.println("My name id Cat"); 11 } 12 } 13 //子类Leopard继承Animal类 14 class Leopard extends Animal{ 15 public void display() { 16 System.out.println("My name is Leopard"); 17 } 18 } 19 public class Test { 20 public static void main(String[] args) { 21 Cat c=new Cat(); 22 c.display(); 23 Leopard l=new Leopard(); 24 l.display(); 25 } 26 }