[Tutorials] java多态请教
Tofloor
poster avatar
199******64
deepin
2024-08-12 22:38
Author

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

Reply Favorite View the author
All Replies
wlly-lzh
deepin
2024-08-13 07:21
#1

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

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

Reply View the author
wlly-lzh
deepin
2024-08-13 07:31
#2

cust.setAccount(new CheckAccount());

相当于:

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

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


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

Reply View the author
177******41
deepin
2024-08-13 14:09
#3

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

Reply View the author
177******41
deepin
2024-08-13 14:13
#4
177******41

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

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

Reply View the author
199******64
deepin
2024-08-13 15:40
#5
177******41

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

谢谢老板

Reply View the author
云帆
deepin
2024-08-14 10:06
#6
177******41

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

java父类不是于胜军吗?

Reply View the author
177******41
deepin
2024-08-21 11:03
#7
云帆

java父类不是于胜军吗?

没毛病

Reply View the author