我已经了解到,派生类型与它们各自的父代完全不同,但是它们确实继承了其父代的所有操作。
换句话说,您可以将派生类型public Integer evaluate() {
Integer xE = x.evaluate(), yE = y.evaluate();
if(yE == 0){
// your logic here if it is a division by 0
}
return xE / yE;
}
传递给一个操作,该操作接收作为参数A
的类型B
的父对象。但是,您无法将类型A
的变量分配给类型A
的变量,反之亦然。
根据上述,派生类型和子类型之间的唯一区别是赋值。是吗?
答案 0 :(得分:4)
派生类型仅继承其派生类型的原始操作。
从技术上讲,类型派生会创建一组新的原始操作,因此您不能“将派生类型A
传递给将类型B
作为参数{{1 }}的父母”。但是,编译器会创建具有相同名称和实现的操作,这些操作根据类型A
的原始操作在类型A
上进行。例如,您可以通过将继承的操作显式声明为抽象来删除它们。