欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java 中的多态练习

程序员文章站 2024-03-21 19:20:10
...

package Exercises;
/*
关于多态的练习
阶段一:描述电脑——类:电脑,行为:运行
阶段二:接上鼠标---类:鼠标,行为:开闭
class NoteBook{
    public void Run(){
        System.out.println("NoteBook run!");
    }
    public void mouseRun(Mouse M)
    {
        if(M){
            M.open();
            M.close();
        }
    }
}
class Mouse{
    public void open(){}
    public void close(){}
}
程序的问题:每增加一个小功能(例如键盘)就要在主函数里增加一段代码
public void hanshu (类类型){
    1.判断是否为空
    2.对象的引用
}
1.代码的扩展性极低,耦合性太高
2.而且在的代码的实现过程中尽量不要修改主函数
*/
//*********************************************
 interface USB{
    public void open();
    public void close();
 }
 class NoteBook{
     public void Run(){
         System.out.println("NoteBook runs!!");
     }
     public void useUSB(USB usb)     //多态
     {
        if(usb!=null){
            usb.open();
            usb.close();
        }
     }
 }
 //鼠标
class Mouse implements USB{
     public void open(){
         System.out.println("mouse open!");
     }
     public void close(){
         System.out.println("mouse close!");
     }
}
//键盘
class KeyBoard implements USB{
     public void open(){
         System.out.println("KeyBoard run!");
     }
     public void close(){
         System.out.println("KeyBoard run!");
     }
}
public class DuoTaiTest{
     public static void main(String[] args){
         NoteBook NB=new NoteBook();
         NB.Run();
         Mouse M=new Mouse();
         NB.useUSB(null);
         NB.useUSB(M);
         NB.useUSB(new KeyBoard());
     }
}
总结:
多态:对象的多种表现——用父类(接口)的引用指向子类(实现)————————解决的问题——使用多种事物共同功能

在这段代码中:

使用鼠标或者是键盘都是的电脑的一个功能——定义为电脑类中的方法

鼠标和键盘都是事物,都有共同的功能——开关(抽去共性为一个接口),让鼠标和键盘之类的类去重写。

代码实现:创建电脑的对象调用功能在功能中传入鼠标和键盘的对象

在电脑类中的方法中传入的是接口引用类型,实参是实现接口的类的对象————多态