[新手教程] java多态请教
电梯直达到第
poster avatar
199******64
deepin
发表于 2024-08-12 22:38
楼主

各位老铁,由于我电脑进不了论坛!所以只好手机拍照说明问题了!图片上是尚硅谷java多态那部分!主要实现给信用卡存钱!我的问题是cust.setAccount里面怎么能塞入多态呢!即 Account account=new CheckAccount()!不应该是个具体值吗?比如1,2..3这种具体值!如果有人能帮忙补充完整一个代码!更是感激不尽!
mmexport1723473468197.png

回复 收藏 只看作者
所有回复
wlly-lzh
deepin
发表于 2024-08-13 07:21
沙发

你这代码木有什么问题呀?

cust.setAccount(new CheckAccount())这里没错呀。

回复 只看作者
wlly-lzh
deepin
发表于 2024-08-13 07:31
板凳

cust.setAccount(new CheckAccount());

相当于:

CheckAccount checkaccount=new CheckAccount();
cust.setAccount(checkaccount);

CheckAccount是继承于Account的,用来当Account也没有问题。


非Java方向,如有错误请谅解。

回复 只看作者
177******41
deepin
发表于 2024-08-13 14:09
地板

因为setAccount方法里面要求传入一个Account的类型,那么传入Account及其子类的对象都可以。换言之,如果你的方法参数类型是Object,那么你可以传入任意类型的变量进去,因为Java的对象类型都继承于Object。

回复 只看作者
177******41
deepin
发表于 2024-08-13 14:13
4楼
177******41

因为setAccount方法里面要求传入一个Account的类型,那么传入Account及其子类的对象都可以。换言之,如果你的方法参数类型是Object,那么你可以传入任意类型的变量进去,因为Java的对象类型都继承于Object。

可以传入子类的原因如下,子类继承了父类的方法或者可以重写父类的方法,那么调用特定方法的时候,父类和子类都包含该方法。倘若形参是子类的话,那么不可以传入父类对象进去,因为子类里面可能包含父类中不存在的方法及变量等。

回复 只看作者
199******64
deepin
发表于 2024-08-13 15:40
5楼
177******41

可以传入子类的原因如下,子类继承了父类的方法或者可以重写父类的方法,那么调用特定方法的时候,父类和子类都包含该方法。倘若形参是子类的话,那么不可以传入父类对象进去,因为子类里面可能包含父类中不存在的方法及变量等。

谢谢老板

回复 只看作者
云帆
deepin
发表于 2024-08-14 10:06
6楼
177******41

因为setAccount方法里面要求传入一个Account的类型,那么传入Account及其子类的对象都可以。换言之,如果你的方法参数类型是Object,那么你可以传入任意类型的变量进去,因为Java的对象类型都继承于Object。

java父类不是于胜军吗?

回复 只看作者
177******41
deepin
发表于 2024-08-21 11:03
7楼
云帆

java父类不是于胜军吗?

没毛病

回复 只看作者