【接口、多态】小练习

第一题:分析以下需求,并用代码实现
    进行描述笔记本类,实现笔记本使用USB鼠标、USB键盘
    1.定义USB接口:
        开启功能
        关闭功能

    2.定义笔记本类:
        开机功能
        关机功能
        定义使用USB设备的功能
        要求:既能使用鼠标也能使用键盘,使用USB功能内部调用开启和关闭功能

    3.定义鼠标类:
        要符合USB接口

    4.定义键盘类:
        要符合USB接口

    5.定义测试类:
        创建电脑对象,依次调用开机方法,使用USB设备, 关机方法

        打印效果如下:
            开机
            连接鼠标的USB
            断开鼠标的USB
            连接键盘的USB
            断开键盘的USB
            关机

/*
进行描述笔记本类,实现笔记本使用USB鼠标、USB键盘
	1.定义USB接口:
		开启功能
		关闭功能

	2.定义笔记本类:
		开机功能
		关机功能
		定义使用USB设备的功能
		要求:既能使用鼠标也能使用键盘,使用USB功能内部调用开启和关闭功能

	3.定义鼠标类:
		要符合USB接口

	4.定义键盘类:
		要符合USB接口

	5.定义测试类:
		创建电脑对象,依次调用开机方法,使用USB设备, 关机方法

		打印效果如下:
			开机
			连接鼠标的USB
			断开鼠标的USB
			连接键盘的USB
			断开键盘的USB
			关机
 */







/*
1.定义USB接口:
		开启功能
		关闭功能
 */
public interface USB {
    public abstract void usbon();
    public abstract void usboff();
}







/*
2.定义笔记本类:
		开机功能
		关机功能
		定义使用USB设备的功能
		要求:既能使用鼠标也能使用键盘,使用USB功能内部调用开启和关闭功能
 */
public class Computer {
    public void run(){
        System.out.println("开机");
    }
    public void off(){
        System.out.println("关机");
    }
    public void useUSB(USB usb){
        if (usb instanceof Mouse){
            Mouse m=(Mouse) usb;
            m.usbon();
            m.usboff();
        }else if (usb instanceof Keybroad){
            Keybroad k=(Keybroad)usb;
            k.usbon();
            k.usboff();
        }
    }

}






/*
3.定义鼠标类:
		要符合USB接口
 */
public class Mouse implements USB {

    @Override
    public void usbon() {
        System.out.println("连接鼠标的USB");
    }

    @Override
    public void usboff() {
        System.out.println("断开鼠标的USB");
    }
}



/*
4.定义键盘类:
		要符合USB接口
 */
public class Keybroad implements USB {
    @Override
    public void usbon() {

        System.out.println("连接键盘的USB");
    }

    @Override
    public void usboff() {
        System.out.println("断开键盘的USB");
    }
}




//测试类
public class Test {
    public static void main(String[] args) {

        Computer c=new Computer();
        c.run();
        c.useUSB(new Mouse());
        c.useUSB(new Keybroad());
        c.off();
    }

}




//控制台


开机
连接鼠标的USB
断开鼠标的USB
连接键盘的USB
断开键盘的USB
关机

            
第二题: 分析以下需求,并用代码实现
    1.定义动物类:
        属性:
            年龄
        行为:
            喝水,吃东西(吃什么不确定)
    2.定义游泳接口:
        行为:
            游泳方法
    3.定义狗类:
        行为:
            吃饭(啃骨头)和 游泳(狗刨)
    4.定义羊类:
        行为:
            吃饭(羊啃草)
    5.定义青蛙类:
        行为:
            吃饭(吃虫子)和 游泳(蛙泳)
    6.定义饲养员类:
        行为:
            饲养动物:包括吃饭和喝水
    7.定义测试类:

        创建饲养员对象,饲养员调用三次饲养方法:饲养狗,饲养羊,饲养青蛙

    要求: 
        1.子类重写父类中的吃东西方法
        2.要求给狗和青蛙添加游泳的方法(实现游泳接口)
        3.饲养员类中定义一个方法,传入动物类对象(父类),
            调用吃饭方法,如果有游泳方法也需进行测试

        4.打印如下格式的结果:
        
            喝水
            狗啃骨头
            狗会狗刨游泳

            喝水
            青蛙吃小虫
            青蛙会蛙泳

扫描二维码关注公众号,回复: 2543373 查看本文章

            喝水
            羊啃草

/*
1.定义动物类:
		属性:
			年龄
		行为:
			喝水,吃东西(吃什么不确定)
 */
public abstract class Animal {
    private int age;

    public void drink(){
        System.out.println("喝水");
    }
    public abstract void eat();

    public Animal() {
    }

    public Animal(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }


}




/*
2.定义游泳接口:
		行为:
			游泳方法
 */
public interface Swimming {
    public abstract void swimming();
}


/*
3.定义狗类:
		行为:
			吃饭(啃骨头)和 游泳(狗刨)
 */
public class Dog extends Animal implements Swimming{

    @Override
    public void eat() {
        System.out.println("狗啃骨头");
    }

    @Override
    public void swimming() {
        System.out.println("狗会狗刨游泳");
    }
}


/*
4.定义羊类:
		行为:
			吃饭(羊啃草)
 */
public class Sheep extends Animal{

    @Override
    public void eat() {
        System.out.println("羊啃草");
    }
}


/*
5.定义青蛙类:
		行为:
			吃饭(吃虫子)和 游泳(蛙泳)
 */
public class Frog extends Animal implements Swimming{

    @Override
    public void eat() {
        System.out.println("青蛙吃小虫");
    }

    @Override
    public void swimming() {
        System.out.println("青蛙会蛙泳");
    }
}


/*
6.定义饲养员类:
		行为:
			饲养动物:包括吃饭和喝水
 */
public class Breeder {
    public void method(Animal a) {
        if (a instanceof Dog) {
            Dog dog = (Dog) a;
            dog.drink();
            dog.eat();
            dog.swimming();
        }else if (a instanceof Frog){
            Frog f=(Frog) a;
            f.drink();
            f.eat();
            f.swimming();
        }else if (a instanceof Sheep){
            Sheep s=(Sheep) a;
            s.drink();
            s.eat();
        }
    }
}




//测试类
public class Test {
    public static void main(String[] args) {
        Breeder b=new Breeder();
        b.method(new Dog());
        System.out.println();

        b.method(new Frog());
        System.out.println();

        b.method(new Sheep());

    }
}


//控制台
喝水
狗啃骨头
狗会狗刨游泳

喝水
青蛙吃小虫
青蛙会蛙泳

喝水
羊啃草

猜你喜欢

转载自blog.csdn.net/L531003231/article/details/81366829