方案1和方案2的问题
1、先上代码:
//根据传入的不同的人的类型,调用对应的read方法
//方案1:
public void getRead(Man man){
man.read();
}
public void getRead(Woman woman){
woman.read();
}
老师,这段代码没有意义啊,在测试类里直接对象实例化后,调用read方法就可以了:
Man man=new Man();
man.read();
Woman woman=new Woman();
woman.read();
或者使用向上转型:
Person person1=new Man();
person1.read();
Person person2=new Woman();
person2.read();
没有创建getRead方法然后还要重载的必要。
2、先上代码:
//方案2:
public void getRead(Person person){
person.read();
}
老师,参数这里是Person person,在具体传参时,传的是Person的子类引用one和two,并不是父类的引用person。老师,在这里是不是有隐藏的向上转型:
Person one=new Man();
和Person two=new Woman();
3、在课程里,老师全选玩代码后,不知道按了什么键,就把许多行的代码都注释了,老师,在Windows上怎么操作?
正在回答
你好!关于第一个问题,老师是为了引入后面的问题才这么介绍的,这么写确实意义不大,所以后面参数换成了Person,这样就可以传入不同的子类对象了。
第二个问题,这里应该是说方法参数是子类的对象吧,也就是one和two这两个父类引用指向的子类对象。哪个地方有隐藏的向上转型,是指Person one=new Man();这样的语句吗?还是说传参的时候?
第三个问题,全选后按ctrl+/进行注释
祝学习愉快!
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星