码迷,mamicode.com
首页 > 编程语言 > 详细

java中的多态

时间:2020-05-21 14:42:59      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:nim   static   color   system   ati   响应   als   ring   extend   

多态:多态性是指允许不同软件元素对同一消息作出响应

把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。
赋值之后,父类型的引用就可以根据当前赋值给它的子对象的特性以不同的方式运作
前提条件:
    继承
    复写
    父类引用指向子类
有多态,就可以升高代码的可扩展性!
class Animal{
      public String name;
      public Animal(String name){
           this.name = name;
      }
}
class Dog extends Animal{
      public String folorColor;
      public Dog(String name,StringfolorColor){
           super(name); this.folorColor = folorColor;
       }
}
class Cat extends Animal{
       public String eyesColor;
       public Cat(String name,String eyesColor){
             super(name); this.eyesColor = eyesColor;
       }
}

public class TestCasting{
     public static void main(String args[]){
         Animal a = new Animal("a");
         Cat c = new Cat("c","cEyesColor");
         Dog d = new Dog("d","dForlorColor");                 
         System.out.println(a instanceof Animal); //true      
         System.out.println(c instanceof Animal); //true     
         System.out.println(d instanceof Animal); //true
         System.out.println(a instanceof Dog); //false
         a = new Dog("d2","d2ForlorColor"); //父类引用指向子类对象,向上转型
         System.out.println(a.name); //可以访问            
         //System.out.println(a.folorColor);
         //!error 不可以访问超出Animal自身的任何属性
         System.out.println(a instanceof Animal); //是一只动物       System.out.println(a instanceof Dog); //是一只狗,但是不能访问狗里面的属性      
          Dog d2 = (Dog)a; //强制转换
          System.out.println(d2.folorColor); //将a强制转换之后,就可以访问狗里面的属性了
     }
}

 

java中的多态

标签:nim   static   color   system   ati   响应   als   ring   extend   

原文地址:https://www.cnblogs.com/joenx/p/12930551.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!