关于Java初级的问题,希望能比较详细解答。 以下是三个类,其中的v.drivedByFemaleDriver(this);

以下是三个类,其中的v.drivedByFemaleDriver(this);this怎么理解?这个位置换成什么变量也能正常运行?publicclassDriverTes... 以下是三个类,其中的v.drivedByFemaleDriver(this);
this怎么理解?这个位置换成什么变量也能正常运行?
public class DriverTest
{
public static void main(String[]args)
{
Driver aDriver=new FemaleDriver();
Vehicle xVehicle=new Car();
aDriver.dirves(xVehicle);
}
}
////////////////////////////////////////////////////////////////////////////

public class FemaleDriver extends Driver
{
public FemaleDriver(){}

@Override
public void dirves(Vehicle v)
{
v.drivedByFemaleDriver(this);

}

}
////////////////////////////////////////////////////////////////////////////

public abstract class Driver
{
public Driver(){}

public abstract void dirves(Vehicle v);
}
////////////////////////////////////////////////////////////////////////////

public class Car extends Vehicle
{
public Car(){}
@Override
public void drivedByFemaleDriver(Driver who)
{
System.out.println("A Female driver drives a car.");

}

@Override
public void drivedByMaleDriver(Driver who)
{
System.out.println("A Male driver drives a car.");

}

}
////////////////////////////////////////////////////////////////////////////

public abstract class Vehicle
{
/* private String type;*/
public Vehicle(){}
/* public Vehicle(String s)
{
type=s;
}*/
public abstract void drivedByFemaleDriver(Driver who);
public abstract void drivedByMaleDriver(Driver who);
}
展开
 我来答
genie2014
2011-09-14 · TA获得超过6488个赞
知道小有建树答主
回答量:1140
采纳率:0%
帮助的人:929万
展开全部
this只的是当前类,在这个程序中就指的是FemaleDriver ,替换的话,你可以用new FemaleDriver()来替换
这个程序主要是让你理解多态的
追问
谢谢了,果然给力。
不过为什么非得在里面new出来个对象呢,(Driver FemaleDriver)为什么不行呢?
万分感谢。学的还是有点不太明白。希望多多指点。
追答
Driver FemaleDriver的涵义是,声明一个名称为FemaleDriver的Driver类型的变量,而可以看到public abstract void drivedByFemaleDriver(Driver who);需要一个类型为Driver的对象,而FemaleDriver继承自Driver,根据多态理论,drivedByFemaleDriver就可以传入类型为FemaleDriver的对象,这里我一再强调,需要的是对象,所以,我们需要使用new关键字实例化一个类型为FemaleDriver的对象
panjacke
2011-09-14 · 超过24用户采纳过TA的回答
知道答主
回答量:91
采纳率:0%
帮助的人:42.6万
展开全部
this,就是FemaleDriver 本身对象,也就是DriverTest中的aDriver,aDriver在调用自身的方法dirves时同时传了一辆车给她,同时她又用了这辆车的一个方法输出这车是正在被一个男人开还是一个女人开把自己给传了过去,而这个司机是个女的,所以她就用了drivedByFemaleDriver这种女人开车的方法开车,然后别人就知道了是个女人在开车。
this要换必须是个会开车的人,也就是必必须继承Driver的一类人
当然如果你想用 class Computer extends Driver{} 这个也可以改成Computer的实例对象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友896aedc
2011-09-14
知道答主
回答量:14
采纳率:0%
帮助的人:6.4万
展开全部
this就是FemaleDriver这个类的实例呀
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
peihanlin
2011-09-14 · TA获得超过136个赞
知道答主
回答量:86
采纳率:0%
帮助的人:57.9万
展开全部
那个this表示FemaleDriver 对象本身
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式