1

关于原始数据类型和引用数据类型的向上转换和向下转换有什么区别。

例如,在原始类型中,我们说向上转换是从低到高(int 到 double),向下转换是从高到低(double 到 int)。为此,我们使用强制转换运算符。

但是对于引用的数据类型,它与前一种情况相反。例如,动物只包含callme()方法,而狗包含callme()callme2()方法,那么我们怎么能说动物比狗高。

4

1 回答 1

1

@用户3316746:

让我们用你的动物的例子,但也把混在一起。

Animal是一个永远不会被实例化的抽象类,旨在保存从它继承的类的公共属性和行为。因此,在这种情况下,动物类可能如下所示:

class Animal {

    // Properties (attributes)
    private int age;

    // Methods (behaviours)
    public void eat();
    public void sleep();
}

dogcat都继承了在 'animal' 类中定义的 'age' 属性和 'eat' 和 'sleep' 方法,但它们也可以定义特定于该类型动物的新属性和新行为。

所以cat可能看起来像:

class Cat extends Animal {

    // Methods (behaviours)
    public void purr();
}

可能看起来像:

class Dog extends Animal {

    // Methods (behaviours)
    public void bark();
}

所以都是动物,都有年龄,都可以吃也可以睡。然而,只有猫会发出呼噜声,只有狗会吠叫。

dog 和 cat 类比它们继承的基础动物类具有更多的功能,但动物类仍然被认为更高,因为它定义了猫和狗共有的属性和行为。

于 2014-05-03T15:22:08.840 回答