精华内容
下载资源
问答
  • 给大家讲述了Java上转型和下转型对象的详细用法以及相关的代码分享,有兴趣的朋友可以学习下。
  • JAVA 上转型对象

    2017-01-10 13:29:19
    JAVA 上转型对象  假设,B是A的子类或间接子类,当用子类B创建一个对象,并把这个对象的引用放到A类声明的对象中时,比如:  A a;  a=new B();  那么就称对象a是子类对象b的上转型对象,对象的上转型...

    JAVA 上转型对象


     假设,B是A的子类或间接子类,当用子类B创建一个对象,并把这个对象的引用放到A类声明的对象中时,比如:
          A a;
          a=new B();


          那么就称对象a是子类对象b的上转型对象,对象的上转型对象的实体是子类负责创建的,但上转型对象会失去原对象的一些属性和功能。



    上转型对象具有如下特点:








    上转型对象实例:

    class Animal{
    	void cry(){
    		System.out.println("I don't known");
    	}
    }
    class Dog extends Animal{
    	void cry(){
    		System.out.println("汪汪...");
    	}
    }
    public class Kq_8 {
    	public static void main(String[] args){
    		Animal animal=new Dog();//animal是Dog类对象的上转型对象
    		animal.cry();
    	}
    }

    输出结果是  : "汪汪...

    而不是 I don' t know

    注意:

         (1)上转型对象不能操作子类声明定义的成员变量;也不能使用子类声明定义的方法。


         (2)上转型对象可以操作子类继承的成员变量和隐藏的成员变量,也可以使用子类继承的或重写的方法。


         (3)上转型对象不能操作子类新增的方法和成员变量。


         (4)可以将对象的上转型对象再强制转换到一个子类对象,此时,该子类对象又具备了子类所有属性和功能。


    再通过一个实例来说明:

    class Mammal{
    	private int n=40;
    	void crySpeak(String s){
    		System.out.println(s);
    	}
    }
    class Abc extends Mammal{
    	void computer(int aa,int bb){
    		int  cc=aa*bb;
    		System.out.println(cc);
    	}
    	void crySpeak(String s){
    		System.out.println("*****************"+s);
    	}
    }
    public class Kq_7 {
    	public static void main(String[] args){
    		Mammal a=new Abc(); //a是Abc类对象的上转型对象
    		a.crySpeak("tammy");
    		Abc b=(Abc)a;   //把上转型对象强制转化为子类的对象
    		b.computer(2,2);
    	}
    }

    运行结果:

    *****************tammy
    4

    展开全文
  • 上转型对象

    千次阅读 2015-05-04 13:45:43
    假设A类是B类的父类,当用子类创建一个对象,并把这个对象的引用放到父类的对象中,例如:  A a;  a=new B(); 或  A a;...对象的上转型对象的实体是子类负责创建的,但上转型对象会失去原对象的一些

    假设A类是B类的父类,当用子类创建一个对象,并把这个对象的引用放到父类的对象中,例如:

              A  a;

             a=new B();

            A  a;

            B b=new B();

           a=b;

               这时,称对象a是对象b的上转型对象。对象的上转型对象的实体是子类负责创建的,但上转型对象会失去原对象的一些属性和功能。上转型对象具有如下特点:

    (1)上转型对象不能操作子类新增的成员变量(失去了这部分属性),不能调用子类新增的方法(失掉了这一部分的行为)。

    (2)上转型对象可以访问子类继承或隐藏的成员变量,也可以调用子类继承的方法或子类重写的实例方法。上转型对象操作子类继承的方法或子类重写的实例方法,起作用等价于           子类去调用这些方法。因此,如果子类重写了父类的某个实例方法后,当对象的上转型对象调用这个实例方法时一定是调用了子类重写的实例方法。

    (3)如果子类重写了父类的静态方法,那么子类对象的上转型对象不能调用子类重写的静态方法,只能调用父类的静态方法。



    展开全文
  • Java 中的上转型和下转型

    千次阅读 多人点赞 2019-01-19 00:22:30
    在我们的日常中,上转型和下转型都使用的比较少,所以当别人问起来什么是上转型,什么是下转型,自己往往一片模糊,或者不能将他们进行明显的区分。 在这里,我将以我个人理解来论述上下转型,希望对大家有帮助,如...

    在我们的日常中,上转型和下转型都使用的比较少,所以当别人问起来什么是上转型,什么是下转型,自己往往一片模糊,或者不能将他们进行明显的区分。

    在这里,我将以我个人理解来论述上下转型,希望对大家有帮助,如有不足,请指出,我会将此及时纠正。

    首先概念:

    • 向上转型

    是指将基类(也叫父类)引用转换为导出类(也叫子类)引用的动作

    问题
    在向上转型的过程中,我们容易出现方法丢失的问题,比如我们将一个导出类(子类)进行向上转型,但是在基类(父类)中可能缺少部分导出类(子类)的方法,所以我们对导出类(子类)进行向上转型之后,使用基类(父类)对象去调用方法,只能调用基类(父类)有的方法。

    • 向下转型

    这个就和向上转型相对应,但是有一点,向下转型必须是在已经向上转型的基础上进行

    计算
    在这里,如何理解向下转型呢?它就如同一个数学问题,我将用短代码呈现:

    //假设A为基类,也就是父类,B为导出类,也就是子类
    A a;
    a=new B();//这是进行上转型
    B b=(B)a;//这是进行下转型
    
    

    在这里面就相当于对a加了两个负号,然后负负得正,所以最后进行下转型后,对象b能够调用B类的所有方法,类似于"B b=new B()"。

    在最后,我们上转型也好,下转型也罢,其实实际输出都是输出导出类(子类)的内容,不同的是,调用的对象不同,还有就是上转型的对象对造成方法丢失的情况。

    以下是测试代码:

    
    class Animal{
        public void show(){
            System.out.println("这是基类,也叫子类!");
        }
        public void walk(){
            System.out.println("走或飞");
        }
    }
    class Dog extends Animal{
        public void show(){
            System.out.println("这是导出类,也叫子类!");
        }
        public void walk(){
            System.out.println("四只脚走!");
        }
        public void smile(){
            System.out.println("dog smile!");
        }
    }
    
    public class Test {
        private static Object Dog;
    
        public static void main(String[] args){
            Animal animal=new Animal();
            Dog dog=new Dog();
            animal.show();
            dog.show();
            animal.walk();
            dog.walk();
            dog.smile();
            //这是将animal进行上转型
            animal=new Dog();
            //调用时写的虽然是基类(父类)方法,但是输出的是导出类(子类)重写后的值
            //对于我个人方便理解,我将它记为用基类(父类)调用导出类(子类)的方法
            animal.show();
            animal.walk();
            //((Dog) animal).smile();
            //下面进行下转型,下转型只能对经过上转型的对象进行下转型
            Dog dog_0=(Dog)animal;
            dog_0.walk();
            dog_0.show();
            dog_0.smile();
        }
    }
    

    输出结果如下所示:

    这是基类,也叫子类!
    这是导出类,也叫子类!
    走或飞
    四只脚走!
    dog smile!
    这是导出类,也叫子类!
    四只脚走!
    四只脚走!
    这是导出类,也叫子类!
    dog smile!
    

    其类图如下所示:
    测试类图

    在测试过程中,我为了大家观看方便,将所有类写在一起,但是在实际生活中,最好是每个类分开写,这样也方便自己的一个了解与维护。

    展开全文
  • Java中的上转型对象 当一个类有很多子类时,并且这些子类都重写了父类中的某个实例方法,那么当把子类创建的对象的引用放到一个父类的对象中时,就得到了该对象的一个上转型对象。 举个例子 如有父类Animal的一个...

    Java中的上转型对象

    当一个类有很多子类时,并且这些子类都重写了父类中的某个实例方法,那么当把子类创建的对象的引用放到一个父类的对象中时,就得到了该对象的一个上转型对象。

    举个例子

    如有父类Animal的一个对象animal、子类Dog、则有animal=new Dog(),其中new Dog为创建子类对象的引用,此时animal是Dog类的一个上转型对象

    上转型对象的多态性体现

    这个上转型对象在调用这个方法时就可能具有多种形态,因为不同的子类在重写父类的方法时可能产生不同的行为。
    人们经常说:“哺乳动物有很多种叫声”,比如,“吼”、“嚎”、“汪汪”、“喵喵”等,这就是叫声的多态。比如,狗类的上转型对象调用“叫声”方法时产生的行为是“汪汪”,而猫类的上转型对象调用“叫声”方法时,产生的行为是“喵喵”,等等。

    举个例子

    父类中有一个方法为sound(),在子类Dog中实现sound()为发出“汪汪!”,当用Dog的上转型对象(如上面提到的animal)去调用方法sound时,实际上调用的是在Dog类中的实现,即发出“汪汪!”。
    即animal.sound();

    详细实例代码请参考上转型对象实例:女娲造人

    展开全文
  • 智能产业云上转型研究报告.docx
  • java 上转型对象

    2017-11-27 11:23:29
    #上转型对象的格式  A a=new B(); or A a; B b = new B(); a=b; #上转型对象的应用场景 #上转型对象的性质 1上转型对象不能操作子类新添加的成员变量与方法 。 2上转型对象可以操作父类中原有...
  • java上转型和下转型对象的深入解析

    千次阅读 2017-10-17 23:08:32
    java的上转型和下转型对象说明
  • Java上转型对象

    2015-07-18 14:56:31
    如果A类是B类的子类,当用子类创建一个对象,并把这个...1,上转型对象会失掉原对象的一些属性和功能(方法),就是说上转型对象不能操作子类新增的成员变量和方法。 2,但是上转型对象可以访问被子类继承或隐藏的成
  • 对象的上转型对象

    2017-07-12 17:40:20
    1. 定义 如果B类是A类的子类或间接子类,当用B类创建对象b并将这个对象b的引用赋给A类对象a时,如...对象b的上转型a的实体是有子类B创建的,但是上转型对象会失去子类B的一些属性和功能。上转型对象具有以下特点:
  • java中的上转型对象

    2018-05-16 17:09:50
    二、性质:1、对象的上转型对象的实质是子类负责创建的,但上转型对象会失去原对象的一些属性和功能。2、上转型对象不能操作子类声明定义的成员变量,也不能使用子类声明定义的方法。3上转型对象可以操作子类继承的...
  • java上转型与下转型

    千次阅读 2013-10-24 20:18:29
    1、上转型:顾名思义就是子类对象向上转为父类对象。  下转型:父类对象向下转为子类对象。   import java.util.ArrayList; import java.util.List; public class ClassA { } class SubClassA extends ClassA {...
  • Java中上转型对象与下转型对象

    千次阅读 2016-03-14 10:13:41
    二类特殊的对象: 上转型对象与下转型对象.
  • 上转型:子类对象由父类引用,想要上转型的前提是必须有继承关系的两个类型 注意:1.上转型对象只能调用父类中定义的方法和属性,调用子类的会报错(上转型失去子类的属性和方法) 2.上转型对象调用方法时调用子类...
  • Part 1 抽象类和对象的上转型对象 1、abstract方法只允许声明不允许实现; 2、abstract类不能用new运算符创建对象; 3、若一个非抽象类是某个抽象类的子类,则它必须重写父类的抽象方法并给出方法体(也可以...
  • 上转型 下转型

    千次阅读 2016-11-06 17:16:46
    Java 转型问题其实并不复杂,只要记住一句话:父类引用指向子类对象。 什么叫父类引用指向子类对象,且听我慢慢道来. 从2个名词开始说起:向上转型(upcasting) 、向下转型(downcasting). 举个例子:有2个类,...
  • 上转型对象:将子类对象的引用赋值给父类对象,那么这个父类对象就是子类对象的上转型对象。 接口回调:java中的接口回调是指,把实现某一接口的类的对象的引用赋值给接口的接口变量。 ...
  • 什么是对象的上转型对象,举个例子 假设Animal类是Tiger类的父类,当用子类创建一个对象,并把这个对象的引用放到父类的对象中时,称对象a是对象b的上转型对象; Animal a; Tiger b = new Tiger(); a=b; 上转型对象...
  • 福州锐掌网络科技有限公司鄢翔在2018云栖大会·深圳峰会中做了题为《普惠生态:生态驱动,云上转型》的分享,就云计算定义、服务形式、未来发展趋势以及阿里云市场对公司的价值提升主要表现等方面的内容做了深入的...
  • Java中的上转型对象

    2020-03-27 11:37:20
    java中的上转型变量 引言: 当学习到java的多态时,提到了上转型变量的概念,由于java中的多态十分重要,在本文中将介绍本人在学习过程中的疑惑和寻找到的解答并进行总结。 1.定义 如果B类是A类的子类或间接子类,...
  • 为什么使用上转型?因为当一个父类有很多子类,子类都重写了父类的方法并加以使用。这时候,如果要在之前代码让你用其他子类来实现,就变得很简单,只需要把A a = new B();换成A a = new C();(假设B和C都继承了A)...
  • Java 【上转型对象】

    千次阅读 2019-03-26 20:05:00
    Java 【上转型对象】 定义一个子类对象,一个父类变量(通常情况下 子类变量的属性数 > 父类变量的属性数 )。子类对象可以给父类对象赋值,被赋值后的父类对象叫做子类的“上转型对象”。 但是...
  • 上转型对象的特点

    千次阅读 2018-06-18 18:19:40
    假设Animal类是Tiger类的父类,当用子类创建一个对象,并把这个对象的引用放到父类的对象中时,比如: Animal a; a=new Tiger();... 这时,称对象a是对象b的上转型对象(好比说“老虎是动物”)。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 203,362
精华内容 81,344
关键字:

上转型