java——多态性

多态性:依赖方法的覆写。

方法的多态性:

  • 方法的重载
  • 方法的覆写

对象的多态性:发生在继承关系中,子类和父类之间的转化

  • 向上转型(自动完成):父类 父类对象=子类实例;
  • 向下转型(强制完成):子类 子类对象=(子类)父类实例;
public class Main{
    public static void main(String args []){
        A a=new B();      //向上转型
        a.print();        //这是B类
        B b=(B) a;        //向下转型
        b.print();         //这是B类
    }
}

class A{
    public void print(){
        System.out.println("这是A类");
    }
}

class B extends A{
    public void print(){
        System.out.println("这是B类");
    }
}
  • 向上转型:由于所有的子类都可以自动向上转型,所以代码的最大意义在于参数的统一
    public class Main{
        public static void main(String args []){
            A b=new B();      //向上转型
            A c=new C();      //向上转型
            b.print();        //参数类型的统一
            c.print();
        }
    }
    
    class A{
        public void print(){
            System.out.println("这是A类");
        }
    }
    
    class B extends A{
        public void print(){
            System.out.println("这是B类");
        }
    }
    
    class C extends A{
        public void print(){
            System.out.println("这是C类");
        }
    }
  • 向下转型:父类调用子类自己特殊的方法

设置数据(保存数据),参数功能的统一

取出数据

80%的情况下使用向上转型,得到参数的统一,方便程序的设计;

15%的情况下使用向下转型的方法,调用子类的特殊方法

5%的情况下不转型。

  • 在开发之中尽量使用向上转型,以统一参数,只有使用了向上转型之后才可以使用向下转型;
  • 子类尽量不要扩充与父类无关的操作方法

猜你喜欢

转载自blog.csdn.net/qq_36230524/article/details/89857451