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%的情况下不转型。

 

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值