关于原始数据类型和引用数据类型的上转和下转之间有什么区别。
例如在原始类型中,我们说up-casting从低到高(int到double),而向下铸造从低到高(double到int)。为此我们使用演员操作符。
但是对于引用的数据类型,它与前一种情况相反。例如,动物只包含callme()
方法,但是狗包含callme()
和callme2()
方法,那么我们怎么能说动物高于狗。
答案 0 :(得分:1)
@ user3316746:
让我们使用动物和狗的示例,同时将 cat 投入混合。
Animal 是一个永远不会被实例化的抽象类,用于保存从中继承的类的公共属性和行为。因此,在这种情况下,动物类可能看起来像:
class Animal {
// Properties (attributes)
private int age;
// Methods (behaviours)
public void eat();
public void sleep();
}
dog 和 cat 都会继承'age'属性以及'animal'类中定义的'eat'和'sleep'方法,但它们也可以定义特定于该类动物的新特性和新行为。
所以 cat 看起来像:
class Cat extends Animal {
// Methods (behaviours)
public void purr();
}
狗可能看起来像:
class Dog extends Animal {
// Methods (behaviours)
public void bark();
}
所以狗和 cat 都是动物的类型,它们都有年龄,它们既可以吃也可以睡觉。但是,只有一只猫可以发出咕噜声,只有一只狗可以吠叫。
狗和猫类比它们继承的基础动物类具有更多的功能,但动物类仍然被认为是更高,因为它定义了猫和狗共有的属性和行为。