第四次作业

1.学习接口

package 第四天作业;
/*
 * 学习接口Learning(包含方法: 预习prepare,上课lessons,复习reveiw)
 */
public interface Learning {
	
	//预习方法
	public void prepare();
	
	//上课方法
	public void lessons();
	
	//复习方法
	public void review();
}

2.喝酒接口

package 第四天作业;
//喝酒接口Drinking(包含方法: 喝酒drink, 吐throwup,耍酒疯playMad)
public interface Drinking {
	
	//喝酒方法
	public void drink();
	
	//吐
	public void throwUp();
	
	//耍酒疯
	public void playMad();
}

3.人的抽象类

package 第四天作业;
//抽象类Person(包含属性:姓名,性别,年龄; 抽象方法:谈恋爱love)
public abstract class Person {
	
	private String name;
	private String sex;
	private int age;
	
	public Person(){
		
	}
	
	public Person(String name,String sex,int age){
		this.name = name;
		this.sex = sex;
		this.age = age;
	}
	
	//定义一个谈恋爱的抽象方法
	public abstract void love();

	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;
	}
	
	 
}

4.学生类

package 第四天作业;
//学生Student是人,得会学习,
//但不能喝酒(因为会使大脑变笨);他们还有自己的学校(school),还喜欢和朋友聊微信(chatting).
//)直接打印一个学生对象,就能以下面格式来输出:
//学生信息:  姓名:张三,性别:男,年龄:20,学校:北大.
public class Student extends Person implements Learning{

	private String schoolName;
	
	
	
	public String getSchoolName() {
		return schoolName;
	}

	public void setSchoolName(String schoolName) {
		this.schoolName = schoolName;
	}

	public Student(){
		
	}
	
	public Student(String name,String sex,int age,String schoolName){
		super(name,sex,age);
		this.schoolName = schoolName;
	}
	
	
	public void love() {
		System.out.println("学生都恋爱吗?不存在的");
	}

	//实现一下预习方法
	public void prepare() {
		System.out.println("期末了开始预习");
	}

	//上课方法
	public void lessons() {
		System.out.println("上课也不听");
	}
	
	//复习方法
	public void review() {
		System.out.println("复习?没有复习的,考研得复习,好好学习才有的复习");
	}
	
	//扩展方法,聊微信
	public void chatting(){
		System.out.println(this.getName()+"喜欢聊微信");
	}
	
	//重写toString()方法
	public String toString(){
		return "学生信息:  姓名:"+super.getName()+" 性别:"+super.getSex()+" 年龄:"+super.getAge()+""
				+ " 学校:"+this.schoolName;
	}
	
	//重写equals()方法
	public boolean equals(Object obj){
		Student stu = (Student)obj;
		if(this.getName() == stu.getName() && this.getSex() == stu.getSex() 
				&& this.getAge() == stu.getAge() && this.schoolName == stu.schoolName){
			
			return true;
		}
		
		return false;
	}
	
	
	
	
}

5.公务员类

package 第四天作业;
//公务员Officer是人,不用学习,
//但经常需要喝酒应酬;他们还得经常开一些无聊的会议(meeting).
public  class Officer extends Person implements Drinking{

	private String goverment;
	
	public Officer(){
		
	}
	
	public Officer(String name,String sex,int age,String goverment){
		super(name,sex,age);
		this.goverment = goverment;
	}
	
	//重写父类中的方法
	public void love() {
		System.out.println("公务员,铁饭碗,大概很多人喜欢");
	}
	
	//扩展方法:开会
	public void meeting(){
		System.out.println(this.getName()+"老是开会");
	}

	
	public void drink() {
		System.out.println("公务员应酬多");
	}

	
	public void throwUp() {
		System.out.println("喝多了容易吐");
	}

	
	public void playMad() {
		System.out.println("一醉解千愁,解不了现实的任何东西。面对现实才好,耍酒疯没什么意思");
	}

}

5.程序员类

package 第四天作业;
//程序猿Programmer,是人,必须经常学习,
//较少社交所以不喝酒;他们特别喜欢写代码(coding),和修bug(debuging).
public class Programmer extends Person implements Learning{
	
	private String company;
	
	public Programmer() {
		
	}
	
	public Programmer(String name,String sex,int age,String company){
		super(name,sex,age);
		this.company = company;
	}
	
	//程序员喜欢写代码
	public void coding(){
		System.out.println(super.getName()+"喜欢写代码");
	}
	
	//程序员改bug
	public void debuging(){
		System.out.println(super.getName()+"喜欢改代码");
	}
	
	@Override
	public void prepare() {
		System.out.println("看博客,看视频,多多预习啊,真的快没有时间了");
	}

	@Override
	public void lessons() {
		System.out.println("上课得好好听,学费好贵啊。。。");
	}

	@Override
	public void review() {
		System.out.println("不断的复习却得到新的东西");
	}

	@Override
	public void love() {
		System.out.println("龟龟,程序员谈恋爱?");
	}
	
}

6.测试Client类

package 第四天作业;
//在场景类Test中定义一个方法method1,在形参和实参上体现对象的多态性,在方法中进行调用,如果对象的实际类型是学生,
//就和朋友聊微信;如果是公务员,就去开会;如果是程序猿,就去写代码和修bug.
public class Test {
	
	
	public static void method(Person per){
		if(per instanceof Student){
			Student stu = (Student)per;
			stu.chatting();
		}else if(per instanceof Officer){
			Officer off = (Officer)per;
			off.meeting();
		}else if(per instanceof Programmer){
			Programmer pro = (Programmer)per;
			pro.coding();
			pro.debuging();
		}
	}
	
	
	public static void main(String[] args) {
		Student stu1 = new Student("菲奥娜","女",18,"西洋剑术学院");
		Officer off = new Officer("李建国","男",62,"食品局");
		Programmer pro = new Programmer("王哈哈","男",28,"腾讯");
		
		System.out.println("--学生--");
		method(stu1);
		System.out.println("--公务员--");
		method(off);
		System.out.println("--程序员--");
		method(pro);
		//直接打印学生引用,打印出学生信息
		System.out.println(stu1);
		//比较俩对象是否为同一学生
		System.out.println("--输出学生对象");
		Student stu2 = new Student("菲奥娜","女",18,"西洋剑术学院");
		System.out.println("--比较学生对象");
		System.out.println(stu1.equals(stu2));
		
		
	}
	
	
	
	
}

测试结果:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值