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());
}
}
总结:多态:对象的多种表现——用父类(接口)的引用指向子类(实现)————————解决的问题——使用多种事物共同功能
在这段代码中:
使用鼠标或者是键盘都是的电脑的一个功能——定义为电脑类中的方法
鼠标和键盘都是事物,都有共同的功能——开关(抽去共性为一个接口),让鼠标和键盘之类的类去重写。
代码实现:创建电脑的对象调用功能在功能中传入鼠标和键盘的对象
在电脑类中的方法中传入的是接口引用类型,实参是实现接口的类的对象————多态
下一篇: 随机生成20个15位长度的数字