day2_接口的练习案例_重点

目标:接口的综合使用练习 学生: 属性:姓名,年龄 行为:学习,抽烟,吃饭 老师: 属性:姓名,年龄 […]

2020年8月8日

目标:接口的综合使用练习

学生:
属性:姓名,年龄
行为:学习,抽烟,吃饭
老师:
属性:姓名,年龄
行为:上课,游泳,吃饭
工人:
属性:姓名,年龄
行为:搬砖,抽烟,吃饭
司机:
属性:姓名,年龄
行为:开车,游泳,吃饭
小结:
1.分析
将子类的共性内容抽取到父类中
一部分子类会的功能放到接口中
2.写代码
先写父类和接口,后写子类

案例分析讲解图:

随堂代码:

//测试类
public class Demo14 {
    public static void main(String[] args) {
        // 创建学生
        Student s = new Student("小王", 18);
        s.eat();
        s.study();
        s.smoking();

        // 创建老师
        Teacher t = new Teacher("苍", 30);
        t.eat();
        t.teach();
        t.swimming();

        // 创建工人
        Worker w = new Worker("张全蛋", 16);
        w.eat();
        w.moveZhuan();
        w.smoking();

        // 创建司机
        Driver d = new Driver("藤原拓海", 12);
        d.eat();
        d.driving();
        d.swimming();
    }
}

// 人类(父类)
public class Person {
    private String name;
    private int age;

    // 吃饭
    public void eat() {
        System.out.println(name + "," + 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 interface Smokeable {
    // 抽烟方法
    public abstract void smoking();
}

// 游泳接口
public interface Swimmable {
    // 游泳方法
    public abstract void swimming();
}

// 工人继承人类,实现抽烟接口
public class Worker extends Person implements Smokeable {
    public Worker() {
    }

    public Worker(String name, int age) {
        super(name, age);
    }

    @Override
    public void smoking() {
        System.out.println(getName() + "工人在寂寞的抽烟!");
    }

    // 搬砖
    public void moveZhuan() {
        System.out.println(getName() + "工人在满头大汗的搬砖!");
    }
}

// 老师继承人类,实现游泳接口
public class Teacher extends Person implements Swimmable {
    public Teacher() {
    }

    public Teacher(String name, int age) {
        super(name, age);
    }

    @Override
    public void swimming() {
        System.out.println(getName() + "老师在瑟瑟发抖的游泳!");
    }

    // 上课
    public void teach() {
        System.out.println(getName() + "老师在激情四射的上课!");
    }
}

// 学生继承人类,实现抽烟接口
public class Student extends Person implements Smokeable {
    // 继承后子类构造方法调用父类构造方法
    public Student() {
    }

    public Student(String name, int age) {
        super(name, age);
    }

    @Override
    public void smoking() {
        System.out.println(getName() + "学生在瑟瑟发抖的抽烟!");
    }

    // 学习
    public void study() {
        System.out.println(getName() + "学生在努力的学习!");
    }
}

// 司机继承人类,实现游泳接口
public class Driver extends Person implements Swimmable {
    public Driver() {
    }

    public Driver(String name, int age) {
        super(name, age);
    }

    @Override
    public void swimming() {
        System.out.println(getName() + "司机一边游泳一边开车!");
    }

    // 开车的方法
    public void driving() {
        System.out.println(getName() + "司机一边开车一边游泳!");
    }
}

 

打赏 0

共有 0 条评论

隐藏
变装