题:
在Java的继承概念中,我了解了在Java中使用继承的各种优点,在其中我遇到了一种称为传递性的优点。
现在,我在google上找到可传递的含义,在这里我得到了“可传递的含义”,它是一种关系,使得它适用于序列的连续成员之间,它也必须适用于按顺序采取的任何两个成员之间。例如,大于B,并且B大于C,则A大于C”。
我理解其中的含义,但是无法在传递性一词和继承概念之间建立直接联系。
有什么解释可以更清楚地理解这一点吗?
最佳答案
如果是保时捷IS-A汽车和汽车IS-A汽车,则保时捷IS-A汽车。
编辑-根据要求,以下是一些代码来演示这一点。
public class Automobile
{
private int fuel = 0;
public void giveFuel(int amount)
{
fuel += amount;
}
}
public class Car extends Automobile
{
}
public class Porche extends Car
{
}
所以现在我可以明显地做到了:
Automobile auto = new Automobile();
auto.giveFuel(5);
但我什至可以:
Porche porche = new Porche();
porche.giveFuel(5);
如果某个功能需要一辆汽车:
public class Person
{
private Automobile ride = 0;
public void setRide(Automobile ride)
{
this.ride = ride;
}
}
我可以:
Porche porche = new Porche();
Person person = new Person()
person.setRide(porche);
如果子类覆盖超类的功能,这会使它们的行为有所不同,则此功能特别有用。因此,也许每个Car子类都有不同的
drive()
方法,需要使用不同量的燃料(Car本身可能是抽象的),并且当此人要使用自己的汽车时,他将调用ride.drive()
,并且正确的燃料量将是采取。