day7作业

一、基础案例
1.训练案例1
1.1.训练描述:【继承】
一、分析以下需求,并用代码实现:
1.定义Person类
属性:姓名name、年龄age;
方法:空参构造方法、满参构造方法、setXxx()、getXxx()、工作work。
2.根据人类,派生一个老师类Teacher
重写工作方法(老师的工作是要好好讲课)。
3.根据人类,派生一个学生类Student
重写工作方法(学生的工作是要好好学习)。
4.编写测试类分别对上述2类具体人物进行测试
5.要求运行结果:
学生的工作要好好学习
老师的工作要好好讲课
1.2.操作步骤描述

public class person {
	private String name;
	private int  age;
	public person(){		
	}
	public person(String name,int age){
		this.name=name;
		this.age=age;
	}
	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 void work(){	
	}	
}
public class teacher {
	public void work(){
		System.out.println("老师的工作要好好讲课");
	}
}
public class stu extends person {	
	public void work(){
		System.out.println("学生的工作要好好学习");
	}
}
public class test1 {
	public static void main(String[] args) {
		stu s1=new stu();
		s1.work();
		
		teacher s2=new teacher();
		s2.work();
	}
}

2.训练案例2
2.1.训练描述:【继承、方法重写】
一、分析以下需求,要求用代码实现:
1.定义手机类
方法:打电话(手机的功能是给某人打电话)
2.根据手机类,派生一个新手机类
重写打电话功能(新功能可以开启视频电话,同时要包含老功能)
3.编写测试类分别对上述2类手机进行测试
4.要求运行结果:
给林青霞打电话
----------------------
开启视频功能
给林青霞打电话
2.2.操作步骤描述

public class phone {
	private String name;		
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}	
	public void call(String name){
		System.out.println("给"+name+"打电话");
	}	
}
public class newphone extends phone{
		public void call(String name) {
			System.out.println("可以视频");
			super.call(name);
		}
}
public class testhone {
	public static void main(String[] args) {
		phone p=new phone();
		p.call("老王");
		
		newphone p1=new newphone();
		p1.call("老王");
	}
}

3.训练案例3
3.1.训练描述:【多态】
一、分析以下需求,并用代码实现:
1.定义Animal动物类
方法:吃东西eat。
2.根据动物类,派生一个猫类Cat
重写吃东西方法(猫吃鱼)。
3.根据动物类,派生一个狗类Dog
重写吃东西方法(狗吃骨头)。
狗还有一个特有方法,狗看门
4.根据动物类,派生一个猪类Pig
重写吃东西方法(猪吃白菜)。
5.根据操作动物类AnimalOperator
方法:调用动物的吃方法
6.编写测试类分别对上述4类事物AnimalOperator、Cat、Dog、Pig创建对象,调用吃东西功能,进行测试
7.要求运行结果:
猫吃鱼
狗吃骨头
猪吃白菜
3.2.操作步骤描述

public class animal {
	public void eat(){		
	}
}
public class cat extends animal{
	public void eat(){
		System.out.println("猫吃鱼");
	}
}
public class dog extends animal {
	public void eat(){
		System.out.println("狗吃骨头");
	}
	public void lookdoor(){
		System.out.println("狗看门");
	}
}
public class pig extends animal {
	public void eat(){
		System.out.println("猪吃白菜");
	}
}
public class animalOperator extends animal{
	public void  dongzuo(animal a){
		a.eat();
	}
}
public class testanimal {
	public static void main(String[] args) {
		animalOperator a=new animalOperator();	
		cat c=new cat();
		c.eat();		
		dog d=new dog();
		d.eat();
		d.lookdoor();	
		pig p=new pig();
		p.eat();
	}
}

二、扩展案例
1.训练案例1
1.1.训练描述:
一、分析以下需求,并用代码实现:

  1. 定义Person类
    属性:
    姓名name、性别gender、年龄age、国籍nationality;
    方法:吃饭eat、睡觉sleep,工作work。
    2.根据人类,派生一个学生类Student
    增加属性:
    学校school、学号stuNumber;
    重写工作方法(学生的工作是学习)。
    3.根据人类,派生一个工人类Worker
    增加属性:
    单位unit、工龄workAge;
    重写工作方法(工人的工作是盖房子)。
    4.根据学生类,派生一个学生干部类 StudentLeader
    增加属性:
    职务job;
    增加方法:开会meeting。
    5.编写测试类分别对上述3类具体人物进行测试。
    6.要求运行结果:
    学生需要学习!
    工人的工作是盖房子!
    学生干部喜欢开会!
    1.2.操作步骤描述
public class person {
	private String name;
	private String gender;
	private int  age;
	private String nationality;
	public person(){		
	}
	public person(String name,String gender,int age,String nationality){
		this.name=name;
		this.gender=gender;
		this.age=age;
		this.nationality=nationality;
	}	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getNationality() {
		return nationality;
	}
	public void setNationality(String nationality) {
		this.nationality = nationality;
	}	
	public void eat(){
		System.out.println("人要吃饭");
	}	
	public void sleep(){
		System.out.println("人要睡觉");
	}
	public void work(){
		System.out.println("人要工作");
	}	
}
public class stu extends person {	
	private String school;
	private int stuNum;
	
	public stu(){
		super();
	}
	public  stu(String name,String gender,int age,String nationality,String school, int stuNum){
		super(name,gender,age,nationality);
		this.school=school;
		this.stuNum=stuNum;
	}	
	public void eat(){
		System.out.println("学生的工作是学习");
	}
	public String getSchool() {
		return school;
	}
	public void setSchool(String school) {
		this.school = school;
	}
	public int getStuNum() {
		return stuNum;
	}
	public void setStuNum(int stuNum) {
		this.stuNum = stuNum;
	}	
}
public class worker extends person{
	private String unti;
	private int workage;
	
	public worker(){
		super();
	}
	public worker(String name,String gender,int age,String nationality,String unti,int workage){
		super(name,gender,age,nationality);
		this.unti=unti;
		this.workage=workage;
	}
	
	public void work(){
		System.out.println("工人的工作是盖房子");
	}
	public String getUnti() {
		return unti;
	}
	public void setUnti(String unti) {
		this.unti = unti;
	}
	public int getWorkage() {
		return workage;
	}
	public void setWorkage(int workage) {
		this.workage = workage;
	}
}
public class stuleader extends person{
	private String job;	
	public stuleader(){
		super();
	}
	public stuleader(String name,String gender,int age,String nationality,String job){
		super(name,gender,age,nationality);
		this.job=job;
	}	
	public void meeting(){
		System.out.println("sb学生干部喜欢开会!");
	}
	public String getJob() {
		return job;
	}
	public void setJob(String job) {
		this.job = job;
	}
}
public class testperson {
	public static void main(String[] args) {
		stu s=new stu("lili","一",15,"zk","北大",110);
		System.out.println(s.getName()+", "+s.getGender()+", "+s.getAge()+", "+s.getNationality()+", "+s.getSchool()+", "+s.getStuNum());
		s.eat();		
		worker w=new worker("laowang","二",16,"mg","zx",5);
		System.out.println(w.getName()+", "+w.getGender()+", "+w.getAge()+", "+w.getNationality()+", "+w.getUnti()+", "+w.getWorkage());
		w.work();		
		stuleader L=new stuleader("hehe","二",18,"zk","sb");
		System.out.println(L.getName()+", "+L.getGender()+", "+L.getAge()+", "+L.getNationality()+", "+L.getJob());
		L.meeting();		
	}
}

2.训练案例2
2.1.训练描述:
一、分析以下需求,并用代码实现
1.定义项目经理类
属性:
姓名 工号 工资 奖金
行为:
工作work
2.定义程序员类
属性:
姓名 工号 工资
行为:
工作work
3.要求:向上抽取一个父类,让这两个类都继承这个父类,共有的属性写在父类中,子类重写父类中的方法
4.编写测试类:完成这两个类的测试
2.2.操作步骤描述

public class yg {
	private String name;
	private int num;
	private int salary;
    public yg(){
	}
	public yg(String name,int num,int salary){
		this.name=name;
		this.num=num;
		this.salary=salary;
	}	
	public void work(){
		System.out.println("員工需要工作");
	}	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
	public int getSalary() {
		return salary;
	}
	public void setSalary(int salary) {
		this.salary = salary;
	}
	public class pm extends yg{
	private int bonus;
	public pm(){
		super();
	}
	public pm(String name,int num,int salary,int bonus){
		super(name,num,salary);
		this.bonus=bonus;
	}
	public int getBonus() {
		return bonus;
	}
	public void setBonus(int bonus) {
		this.bonus = bonus;
	}	
	public void work(){
		System.out.println("管理");
	}
}
public class Coder extends yg {
	public Coder() {
		super();
	}
	public Coder(String name,int num,int salary){
		super();
	}
	public void work(){
		System.out.println("敲代码");
	}

}
public class testyg {
	public static void main(String[] args) {
		pm p =new pm("laowang",001,1000,5000);
		p.work();
		
		Coder c=new Coder("fan",002,20000);
		c.work();
	}
}

3.训练案例3
3.1.训练描述:
一、分析以下需求,并用代码实现
1.已知学生类和老师类如下:
属性:
姓名,年龄
行为:
吃饭
老师有特有的方法:
讲课
学生有特有的方法:
学习

2.要求:向上抽取一个父类,让这两个类都继承这个父类,共有的属性写在父类中,子类重写父类中的方法
3.编写测试类:完成这两个类的测试
3.2.操作步骤描述

public class Person {
	private String name;
	private int age;
	public Person() {
		super();
	}
	public Person(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
	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 void eat(){
		System.out.println("吃饭");
	}	
	public void work(){
		System.out.println("人都需要工作");
	}
}
public class Student extends Person{
	public Student() {
		super();
	}
	public Student(String name, int age) {
		super(name, age);
	}
	public void work(){
		System.out.println("学生要学习");
	}
}
public class Teacher extends Person {
	public Teacher() {
		super();
	}
	public Teacher(String name, int age) {
		super(name, age);
		// TODO Auto-generated constructor stub
	}
	public void work(){
		System.out.println("老师要讲课");
	}
}
public class Task03 {
	public static void main(String[] args) {
		Student s = new Student2("hehe", 20);
		s.work();
		s.eat();
		Teacher t = new Teacher("lili", 18);
		t.work();
		t.eat();
	}
}

4.训练案例4
4.1.训练描述:
一、分析以下需求,并用代码实现:
1.定义员工类:
属性:
工号,姓名
行为:
工作方法(用简单的输出语句模拟)
2.定义经理类:
属性:
工号,姓名,奖金
行为:
工作方法(管理员工,简单输出语句模拟)
3.定义服务员类:
属性:
工号,姓名
行为:
工作方法(为客户服务,简单输出语句模拟)
4.定义测试类:
分别创建经理类对象和服务员类对象
调用各自的工作方法
要求:
分析各个事物之间的继承关系,抽取出相关的类
4.2.操作步骤描述

public class yg {

		private String name;
		private String id;
		private double salary;
		public yg() {
			super();
			// TODO Auto-generated constructor stub
		}
		public yg(String name, String id, double salary) {
			super();
			this.name = name;
			this.id = id;
			this.salary = salary;
		}
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public String getId() {
			return id;
		}
		public void setId(String id) {
			this.id = id;
		}
		public double getSalary() {
			return salary;
		}
		public void setSalary(double salary) {
			this.salary = salary;
		}
		
		public void work(){
			System.out.println("员工都要工作");
		}
	}
public class pm extends yg{
	private double bonus;
	public pm() {
		super();
	}
	public pm(String name, String id, double salary, double bonus) {
		super(name, id, salary);
		this.bonus = bonus;
	}
	public double getBonus() {
		return bonus;
	}
	public void setBonus(double bonus) {
		this.bonus = bonus;
	}
	
	@Override
	public void work() {
		System.out.println(this.getName() + "..." + this.getId() + "...." + this.getSalary() + "..." + this.getBonus() + ",项目经理正在上班");
	}
}
public class fwy extends yg {
	public fwy() {
		super();
	}

	public fwy(String name, String id) {
		super(name, id);
	}

	@Override
	public void work() {
		System.out.println(this.getName() + "..." + this.getId() + ",服务员跪着服务顾客");
	}
}
public class testyg2 {
	public static void main(String[] args) {
		pm p=new pm("wang","30",10000);
		p.work();
		
		fwy f=new fwy("liu","30");
		f.work();
	}
}

版权声明:本文为qq_25534101原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。