多态的必要条件
1.要有继承
2.要有重写
静态属性、静态方法、非静态的属性不涉及重写,所以这些内容没有多态
多态主要指非静态方法的重写,从而表现的多种形态
3.父类引用指向了子类的对象
Pet pet = new Dog();
4.注意:
只能调用其引用类型中定义的方法
运行的时候会运行子类重写的方法
如何实现多态:
使用多态实现思路
编写父类
编写子类,子类重写父类方法
运行时,使用父类的类型,子类的对象
向上转型
实现多态的两种形式
使用父类作为方法形参实现多态
使用父类作为方法返回值实现多态
父类
public abstract class Printer {
public abstract void print();//抽象方法用于子类继承,重写
}
三个子类
public class DotMatrixPrinter extends Printer{
@Override
public void print() {
System.out.println("针式打印机在打印");
}
}
public class InkpetPrinter extends Printer {
@Override
public void print() {
System.out.println("喷墨打印");
}
}
public class LaserPrinter extends Printer {
@Override
public void print() {
System.out.println("激光打印");
}
}
main方法程序入口
public class Test {
public static void main(String[] args) {
Printer p=new DotMatrixPrinter();//父类引用指向了子类的对象
p.print();
p= new InkpetPrinter();
p.print();
p=new LaserPrinter();
p.print();
}
}