多态
多态是:一个对象的多种状态,由父类的引用类型变量指向子类的对象或者接口的引用类型变量指向接口实现类的对象。
多态的三要素:
1.一定要有继承
2.一定要重写
3.父类的指针指向子类的对象
例如:
class Person
{
void usePrinter(Printer printer){// Printer printer = new BlackPrinter();
System.out.println("人在使用打印机");
printer.print(); // 打印方法 print方法的调用者 实际上是 传过来的子类对象
}
}
abstract class Printer
{
//有打印的行为
abstract void print();
}
class LightPrinter extends Printer
{
void print(){
System.out.println("激光打印机在打印");
}
}
class ThreeDPrinter extends Printer
{
void print(){
System.out.println("3D打印机打印内容");
}
}
class ColorfulPrinter extends Printer
{
void print(){
System.out.println("彩色打印机打印内容");
}
}
class BlackPrinter extends Printer
{
void print(){
System.out.println("黑白打印机打印内容");
}
}
class Test
{
public static void main(String[] args)
{
// 建一个Person类的对象来使用打印机
Person jack = new Person();
// 建一个打印机对象来实现打印
BlackPrinter black = new BlackPrinter();
jack.usePrinter(black);
// 创建彩色打印机对象并用jack来使用打印
ColorfulPrinter color = new ColorfulPrinter();
jack.usePrinter(color);
ThreeDPrinter three = new ThreeDPrinter();
jack.usePrinter(three);
LightPrinter light = new LightPrinter();
jack.usePrinter(light);
}
}