JAVA抽象类abstract、继承extends练习②+③

分析以下需求,并用代码实现
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,"狗粮");
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值