学习接口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,学校:北大.(4)如果两个学生的姓名、性别、年龄、学校一样,则认为这两个学生“相等”。
1.(1)
学习接口:
package week4homework;
public interface Learning { //学习接口
public void preLearn(); // 预习方法
public void lessons(); //上课方法
public void reveiw(); //复习方法
}
喝酒接口
package week4homework;
//喝酒方法
public interface Drinking {
public void drink(); // 喝酒方法
public void threow(); //吐方法
public void playMad(); //耍酒疯方法
}
抽象类:
package week4homework;
public abstract class Person {
private String name;
private String sex;
private int age;
public Person(){
}
public Person(String name,String sex,int age){
this.age=age;
this.name=name;
this.sex=sex;
}
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();
}
Student类:
package week4homework;
public class Student extends Person implements Learning{
private String Schoolname;
public Student(){
}
public Student(String name,String sex,int age,String Schoolname){
super(name,sex,age);
this.Schoolname=Schoolname;
}
public String getSchoolname() {
System.out.println("学校名字"+this.Schoolname);
return Schoolname;
}
public void setSchoolname(String schoolname) {
Schoolname = schoolname;
}
@Override
public void preLearn() {
System.out.println("上课前要预习");
}
@Override
public void lessons() {
System.out.println("上课就是玩手机呗");
}
@Override
public void reveiw() {
System.out.println("期末了,要复习,挂科很难受的");
}
@Override
public void love() {
System.out.println("大学生该谈一场恋爱的");
}
public void chatting(){
System.out.println("学生喜欢和人聊微信");
}
}
Officer类
package week4homework;public class Officer extends Person implements Drinking{
public Officer(){
}
public Officer(String name,String sex,int age){
super(name,sex,age);
}
@Override
public void drink() {
System.out.println("公务员需要喝酒应酬");
}
@Override
public void threow() {
System.out.println("喝多了就会吐");
}
@Override
public void playMad() {
System.out.println("偶尔还耍酒疯");
}
@Override
public void love() {
System.out.println("大多人喜欢这个工作");
}
public void meeting(){
System.out.println("公务员经常会开一些无聊的会议");
}
}
Programmer类
package week4homework;
public class Programmer extends Person implements Learning{
public Programmer(){
}
public Programmer(String name,String sex,int age){
super(name,sex,age);
}
@Override
public void preLearn() {
}
@Override
public void lessons() {
System.out.println("程序员需要一直学习才能跟的上时代");
}
@Override
public void reveiw() {
}
@Override
public void love() {
System.out.println("程序员也有爱情");
}
public void coding(){
System.out.println("程序员特别喜欢敲代码");
}
public void debuging(){
System.out.println("程序员经常修复一些Bug");
}
}
1.(2)(3)(4)
Client类
package week4homework1;
public class Client {
private String name;
private int age;
public Client(){
}
public Client(String name ,int age){
this.name=name;
this.age=age;
}
public void method(){
}
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;
}
}
Student类:
package week4homework1;
public class Student1 extends Client{
private String Schoolname;
private String sex;
public Student1(String name,int age,String Scoolname,String sex){
super(name,age);
this.Schoolname=Scoolname;
this.sex=sex;
}
@Override
public void method() {
System.out.println("学生和朋友聊天!");
}
public String getSchoolname() {
return Schoolname;
}
public void setSchoolname(String schoolname) {
Schoolname = schoolname;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String toString(){
return "学生信息: 姓名:"+super.getName()+" 性别:"+this.getSchoolname()+" 年龄:"+super.getAge()+""
+ " 学校:"+this.getSex();
}
public boolean equals(Object obj){
Student1 stu = (Student1)obj;
if(this.getName() == stu.getName() && this.getSex() == stu.getSex()
&& this.getAge() == stu.getAge() && this.Schoolname == stu.getSchoolname()){
return true;
}
return false;
}
}
Officer类:
package week4homework1;
public class Officer1 extends Client{
public Officer1(){
}
public Officer1(String name,int age){
super(name, age);
}
@Override
public void method() {
System.out.println("公务员要开会!");
}
}
Programmer类:
package week4homework1;
public class Programmer1 extends Client{
public Programmer1(){
}
public Programmer1(String name,int age){
super(name, age);
}
@Override
public void method() {
System.out.println("程序员写代码、修bug!");
}
}
text类:
package week4homework1;
import week4homework.Student;
public class Text {
public static void main(String[] args) {
Student1 stu=new Student1("张三", 20,"男", "麻省理工大学");
Officer1 o=new Officer1("李四", 25);
Programmer1 p=new Programmer1("跳蛋", 24);
method(stu);
method(o);
method(p);
System.out.println(stu); //打印出学生信息
Student1 stu2 = new Student1("张三", 20,"男", "麻省理工大学");
System.out.println(stu.equals(stu2)); //比较学生信息
}
private static void method(Client C) {
if(C instanceof Student1){
Student1 stu = (Student1)C;
stu.method();
}else if(C instanceof Officer1){
Officer1 o = (Officer1)C;
o.method();
}else if(C instanceof Programmer1){
Programmer1 p = (Programmer1)C;
p.method();
}
}
}
输出结果:
学生和朋友聊天!
公务员要开会!
程序员写代码、修bug!
学生信息: 姓名:张三 性别:男 年龄:20 学校:麻省理工大学
true