什么是多态?
同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。简单的说:就是用父类的引用指向子类的对象。
特点
-------继承
-------重写
-------父类引用指向子类对象
应用场景
参数的多态
public static void printer(MyInterface myInterface){}
//参数是不同的实现类
public static void printer(MyInterfaceImpl myInterfaceImpl){}
public static void printer(MyInterfaceImpl2 myInterfaceImpl2){}
返回值的多态
public static MyInterface printer(){
return new MyInterfaceImpl("luo",18);
}
public static MyInterface printer(){
return new MyInterfaceImpl2("luo",18);
}
接口的多态
public static void main(String[] args) {
MyInterface myInterface = new MyInterfaceImpl("luo",18);
}
public static void main(String[] args) {
MyInterface myInterface = new MyInterfaceImpl2("luo",18);
}
基于继承的多态
//人类
public abstract class Person {}
//教师类
public class Teacher extends Person {}
//学生
public class Student extends Person{
public class Test {
public static void main(String[] args) {
Person person = new Student();
}
}
多态的作用
- 应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。大大提高程序的可复用性。//继承
- 派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性和可维护性。 //多态的真正作用,