分析以下需求,并用代码实现
1.定义项目经理类
属性:
姓名 工号 工资 奖金
行为:
工作work
2.定义程序员类
属性:
姓名 工号 工资
行为:
工作work
3.要求:向上抽取一个父类,让这两个类都继承这个父类,共有的属性写在父类中,子类重写父类中的方法
编写测试类:完成这两个类的测试
package cn.itcast2;
public class Person {
private String name;
private int id;
private int salary;
public Person() {
}
public Person(String name, int id, int salary) {
this.name = name;
this.id = id;
this.salary = salary;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
public void work(){
}
}
package cn.itcast2;
public class Manager extends Person {
private int bonus;
public Manager(String name, int id, int salary, int bonus) {
super(name, id, salary);
this.bonus = bonus;
}
public int getBonus() {
return bonus;
}
public void setBonus(int bonus) {
this.bonus = bonus;
}
public void work(){
System.out.println("经理做经理工作");
}
}
package cn.itcast2;
public class Programmer extends Person {
public Programmer(String name, int id, int salary) {
super(name, id, salary);
}
public void work(){
System.out.println("程序员写代码");
}
}
测试类:
package cn.itcast2;
public class DemoPerson {
public static void main(String[] args) {
Manager m =new Manager("小李",1234,20000,8000);
Programmer p = new Programmer("小王",2222,30000);
System.out.println(m.getName()+':'+"工号:"+m.getId()+"工资:"+m.getSalary()+'+'+m.getBonus());
m.work();
System.out.println("==================================");
System.out.println(p.getName()+':'+"工号:"+p.getId()+"工资:"+p.getSalary());
p.work();
}
}
**根据需求完成代码:
1.定义动物类
属性:
年龄,颜色
行为:
eat(String something)方法(无具体行为,不同动物吃的方式和东西不一样,something表示吃的东西)
生成空参有参构造,set和get方法
2.定义狗类继承动物类
行为:
eat(String something)方法,看家lookHome方法(无参数)
3.定义猫类继承动物类
行为:eat(String something)方法,逮老鼠catchMouse方法(无参数)
4.定义Person类
属性:
姓名,年龄
行为:
keepPet(Dog dog,String something)方法
功能:喂养宠物狗,something表示喂养的东西
行为:
keepPet(Cat cat,String something)方法
功能:喂养宠物猫,something表示喂养的东西
生成空参有参构造,set和get方法
**5.测试以上方法**
package cn.itcast3;
public abstract class Animal {
private int age;
private String color;
public Animal() {
}
public Animal(int age, String color) {
this.age = age;
this.color = color;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public abstract void eat(String something);
}
package cn.itcast3;
public class Dog extends Animal {
public Dog() {
}
public Dog(int age, String color) {
super(age, color);
}
@Override
public void eat(String something) {
System.out.println("狗吃" + something);
}
public void lookHome(){
System.out.println("狗看门");
}
}
package cn.itcast3;
public class Cat extends Animal {
public Cat() {
}
public Cat(int age, String color) {
super(age, color);
}
@Override
public void eat(String something) {
System.out.println("猫吃" + something);
}
public void catchMouse() {
System.out.println("猫捉老鼠");
}
}
package cn.itcast3;
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 keepPet(Dog dog,String something){
System.out.println("喂养"+dog.getAge()+something);
}
public void keepPet(Cat cat,String something){
System.out.println("喂养"+cat+something);
}
}
测试类
package cn.itcast3;
public class Demo {
public static void main(String[] args) {
Dog d = new Dog(3, "红色");
Cat c = new Cat(2, "白色");
Person p = new Person("小王",21);
d.eat("屎");
d.lookHome();
c.eat("耗子");
c.catchMouse();
System.out.println("===============");
p.keepPet(d,"狗粮");
}
}