面向对象_老师学生案例加入抽烟功能分析及代码实现

来源:互联网 发布:周利润数据统计spss 编辑:程序博客网 时间:2024/05/01 09:35
/*老师和学生案例,加入抽烟和额外功能分析:从具体到抽象老师:成员变量:姓名、年龄构造方法:无参、带参成员方法:吃饭();、睡觉(){}学生:成员变量:姓名、年龄构造方法:无参、带参成员方法:吃饭();、睡觉(){}由于有共性功能,所以,提取出一个父类,人类。人类:成员变量:姓名、年龄构造方法:无参、带参成员方法:吃饭();、睡觉(){}抽烟是额外功能不是人或者老师、或者学生一开始就应该具备的,所以,我们把它定义为接口抽烟接口。部分老师抽烟:实现抽烟接口部分学生抽烟:实现抽烟接口实现:从抽象到具体抽烟接口:部分老师抽烟:实现抽烟接口部分学生抽烟:实现抽烟接口人类:成员变量:姓名、年龄构造方法:无参、带参成员方法:吃饭();、睡觉(){}老师:成员变量:姓名、年龄构造方法:无参、带参成员方法:吃饭();、睡觉(){}学生:成员变量:姓名、年龄构造方法:无参、带参成员方法:吃饭();、睡觉(){}使用:具体类*///定义抽烟接口interface Smoking{//抽烟的抽象方法public abstract void smoke();}//定义抽象人类abstract class Person{//姓名private String name;//年龄 private int age;//无参 public Person(){}//带参public Person(String name,int age){this.name = name;this.age = age;}//getXxx()/setXxx()public String getName(){return name;}public void setName(String name){this.name = name;}public int getAge(){return age;}public void setAge(int age){this.age = age;}//吃饭();public abstract void eat();//睡觉(){}public void sleep(){System.out.println("睡觉了");}}//定义具体老师类class Teacher extends Person{public Teacher(){}public Teacher(String name,int age){super(name,age);}public void eat(){System.out.println("老师吃素");}}//定义具体学生类class Student extends Person{public Student(){}public Student(String name,int age){super(name,age);}public void eat(){System.out.println("学生吃肉");}}//实现部分老师抽烟接口class SmokingTeacher extends Teacher implements Smoking{public SmokingTeacher(){}public SmokingTeacher(String name,int age){super(name,age);}public void smoke(){System.out.println("抽烟的老师");}}//实现部分学生抽烟接口class SmokingStudent extends Student implements Smoking{public SmokingStudent(){}public SmokingStudent(String name,int age){super(name,age);}public void smoke(){System.out.println("抽烟的学生");}}//测试类class InterfaceTest2{public static void main(String[] args){//测试老师SmokingTeacher st = new SmokingTeacher();//Person p = new Teacher();//不抽烟的老师(多态),也可具体st.setName("王意");st.setAge(35);System.out.println(st.getName()+"---"+st.getAge());st.eat();st.sleep();st.smoke();System.out.println("------------------------------");SmokingTeacher st2 = new SmokingTeacher("无心",55);//Person p2 = new Teacher("无心",55);//不抽烟的老师(多态),也可具体System.out.println(st2.getName()+"---"+st2.getAge());st2.eat();st2.sleep();st2.smoke();System.out.println("------------------------------");//测试学生SmokingStudent ss = new SmokingStudent();//Person p = new Student();//不抽烟的学生(多态),也可具体ss.setName("小明");ss.setAge(15);System.out.println(ss.getName()+"---"+ss.getAge());ss.eat();ss.sleep();ss.smoke();System.out.println("------------------------------");SmokingStudent ss2 = new SmokingStudent("小刚",18);//Persong p2 = new Teacher("小刚",18);//不抽烟的学生(多态),也可具体System.out.println(ss2.getName()+"---"+ss2.getAge());ss2.eat();ss2.sleep();ss2.smoke();System.out.println("------------------------------");}}

0 0
原创粉丝点击