多态指的是父类引用指向子类对象或者接口引用指向实现类的对象。
格式
父类名称 对象名=new 子类名字();
接口名称 对象名=new 实现类名();
- 对象的向上转型,一定是安全的。但是无法调用子类或者实现类特有的方法,转型的时候可以理解为子类或者实现类将与父类共同的方法赋予父类。但是无法将子类特有的方法赋予父类。
- 对象的向下转型,可以将父类再重新转为真实的子类对象。
- 练习笔记本电脑的实现
//USB public interface USB { public abstract void open(); public abstract void close(); } //Computer public class Computer { public void powerOn(){ System.out.println("打开电脑"); } public void powerOff(){ System.out.println("关闭电脑"); } public void UserDevice(USB usb){ usb.open(); usb.close(); } } //Mouse public class Mouse implements USB{ @Override public void open() { System.out.println("打开鼠标"); } @Override public void close() { System.out.println("关闭鼠标"); } } //Keyboard public class Keybord implements USB{ @Override public void open() { System.out.println("打开键盘"); } @Override public void close() { System.out.println("关闭键盘"); } } //Test public class Test { public static void main(String[] args) { Computer c=new Computer(); c.powerOn(); USB mouse=new Mouse(); c.UserDevice(mouse); Keybord k=new Keybord(); c.UserDevice(k); c.powerOff(); } }
本文通过Java代码示例展示了多态的概念,使用USB接口和Computer类,说明了如何通过父类引用操作子类对象(Mouse和Keyboard),以及如何进行对象的向上和向下转型。在向上转型中,父类引用只能调用公共方法,而向下转型可以访问子类特有的功能。




1057

被折叠的 条评论
为什么被折叠?



