java中的多态 表现为:子类对象可以作为父类对象来实用 (父类对象可以通过引用一个子类的实例来调用子类的方法)
原应是:子类通过继承具有了父类的所有属性和方法(私有的除外),假设子类没有重写父类中的方法,
那么在需要执行父类对象的方法时,效果等同于执行子类对象的方法,
如果子类在继承后重写了父类的方法,那么在执行子类对象方法时,系统会选择执行子类重写的方法,
由此看出多态是由系统内建的功能,而不是程序员设计的逻辑算法,相当于是系统为了方便程序员灵活开发而实现的功能,
这也就是多态的作用,
需要注意的是,实现多态时子类对象只能调用父类中存在的方法,不能调用子类型新增的方法,
class A{
public int x = 2;
public void fun(){
System.out.println(x);
}
}
class B extends A{
public void fun(){
System.out.println(++x);
}
}
public class demo{
public static void main(String args[]){
A obj = new B();
obj.fun(); //输出 3
}
}
多态的好处:把子类实例的引用赋值给父类对象,由父类对象调用方法(通用代码),实际调用子类重写的方法,父类对象调用的方法一样,实际执行的结果各不相同,
这样的好处是 代码可移植性增强,减少代码量,灵活方便,