homework
来源:互联网 发布:酷狗mac版 编辑:程序博客网 时间:2024/06/05 09:44
(1)定义以下这些接口和类,并完成相关属性和方法的声明和调用.数据类型,参数列表,返回值类型等请根据题目需要自行定义.
学习接口Learning(包含方法: 预习preLearn,上课lessons,复习reveiw)
喝酒接口Drinking(包含方法: 喝酒drink, 吐throwup,耍酒疯playMad)
抽象类Person(包含属性:姓名、年龄、性别,抽象方法:谈恋爱(Love)
学生Student是人,得会学习但不能喝酒(因为会使大脑变笨);他们还有自己的学校(school),还喜欢和朋友聊微信(chatting).
公务员Officer是人,不用学习,但经常需要喝酒应酬;他们还得经常开一些无聊的会议(meeting).
程序猿Programmer,是人,必须经常学习,较少社交所以不喝酒;他们特别喜欢写代码(coding),和修bug(debuging).
学习接口Learning(包含方法: 预习preLearn,上课lessons,复习reveiw)
喝酒接口Drinking(包含方法: 喝酒drink, 吐throwup,耍酒疯playMad)
抽象类Person(包含属性:姓名、年龄、性别,抽象方法:谈恋爱(Love)
学生Student是人,得会学习但不能喝酒(因为会使大脑变笨);他们还有自己的学校(school),还喜欢和朋友聊微信(chatting).
公务员Officer是人,不用学习,但经常需要喝酒应酬;他们还得经常开一些无聊的会议(meeting).
程序猿Programmer,是人,必须经常学习,较少社交所以不喝酒;他们特别喜欢写代码(coding),和修bug(debuging).
(2)在场景类Client中定义一个方法method1,在形参和实参上体现对象的多态性,在方法中进行调用,如果对象的实际类型是学生,就和朋友聊微信;如果是公务员,就去开会;如果是程序猿,就去写代码和修bug.
(3)直接打印一个学生对象,就能以下面格式来输出:
学生信息: 姓名:张三,性别:男,年龄:20,学校:北大.
学生信息: 姓名:张三,性别:男,年龄:20,学校:北大.
(4)如果两个学生的姓名、性别、年龄、学校一样,则认为这两个学生“相等”。
学习接口Learning:
package homework;public interface Learning {public abstract void preLearn();public abstract void lessons();public abstract void review();}
喝酒接口Drinking:
package homework;public interface Drinking {public abstract void drink();public abstract void throwUp();public abstract void playMad();}
抽象类Person:
package homework;public abstract class Person {private String name;private String sex;private int age;public Person() {super();}public Person(String name, String sex, int age) {super();this.name = name;this.sex = sex;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public abstract void love();public void work(){}}
学生类Student继承Person类实现Learning接口:
package homework;public class Student extends Person implements Learning{private String school;public Student() {}public Student(String name,String sex,int age, String school){super(name, sex, age);this.school=school;}public String getSchool() {return school;}public void setSchool(String school) {this.school = school;}@Overridepublic void love() {}@Overridepublic void preLearn() {}@Overridepublic void lessons() {}@Overridepublic void review() {}public void chatting(){System.out.println("学生和朋友聊微信");}@Overridepublic String toString() {return "姓名:"+getName()+",性别:"+getSex()+",年龄:"+getAge()+",学校:"+getSchool();}@Overridepublic boolean equals(Object object) {if(object==null){return false;}else if(object==this){return true;}else if(!(object instanceof Student)){return false;}Student student=(Student)object;if(getName().equals(student.getName()) && getSex().equals(student.getSex()) && getAge()==student.getAge() && school.equals(student.school)){return true;}return false;}}
公务员Officer继承Person类实现Drinking接口:
package homework;public class Officer extends Person implements Drinking{@Overridepublic void drink() {}@Overridepublic void throwUp() {}@Overridepublic void playMad() {}@Overridepublic void love() {}public void meeting(){System.out.println("公务员去开会");}}
程序猿Programmer类继承Person类实现Learning接口:
package homework;public class Programmer extends Person implements Learning{@Overridepublic void preLearn() {}@Overridepublic void lessons() {}@Overridepublic void review() {}@Overridepublic void love() {}public void coding(){System.out.println("程序员写代码");}public void debuging(){System.out.println("程序员修bug");}}
场景类Client:
package homework;public class Client {public void method1(Person person){if(person==null){System.out.println("不能传空值");}else if(person instanceof Student){Student student=(Student)person;student.chatting();}else if(person instanceof Programmer){Programmer programmer=(Programmer)person;programmer.coding();programmer.debuging();}else if(person instanceof Officer){Officer officer=new Officer();officer.meeting();}}}
测试类Test:
package homework;public class Test {public static void main(String[] args){Student student1=new Student();Client client=new Client();//学生和朋友聊天client.method1(student1);Person programmer=new Programmer();//向上转型//程序员改代码、修bugclient.method1(programmer);//公务员开会client.method1(new Officer());Student student=new Student("张三","男",20,"北大");System.out.println(student);Student student2=new Student("张三","男",20,"北大");System.out.println(student.equals(student2)?"学生相等":"学生不相等");}}
阅读全文