java继承多态的练习题

时间:2023-02-12 21:10:05


java继承多态的练习题

2014-09-04 09:07 优土壁  |  分类:JAVA相关  |  浏览403次

java继承多态的练习题

java继承多态的练习题


java继承多态的练习题

java继承多态的练习题

这两道题,完全没思路,求详解

2014-09-04 09:33 提问者采纳
Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。
java多态存在的三个必要条件:
1.需要有继承关系的存在
2.需要有方法的重写
3.需要有父类的引用指向子类对象
希望对你有帮助。
第一题应该选D,第二题选C,D。
第一题属于多态,methodB()方法属于子类,父类没有重写子类的方法
第二题属于继承,子类可以继承父类的方法
追问
第二题调用那块不太明白。
那如果改成t.change(30)或者p.b还可以么?
回答
t.change(30)可以,因为t这个对象继承了Person类

p.b不可以,因为Person类中没有b这个属性,只能p.a
追问
谢谢,不好意思只能采纳一个,你和ZY1404协商一下吧
提问者评价
谢谢!
评论  |  2  0

java继承多态的练习题

流风子云 | 八级 采纳率36%

擅长: JAVA相关 JavaScript

按默认排序 | 按时间排序

其他6条回答

2014-09-04 09:24 zy1404  | 九级
1.D

父类类型的引用,指向子类型。可以调用父类中定义的所有属性和方法,而对于子类中定义而父类中没有的方法,它是无可奈何的;
2. C,D
要想使用a,必须使用p.a才能调用a,这是类的封装性的体现
对于b的调用也是类似
追问
CD为什么是对的,AB为什么是错的
回答
首先main函数属于静态方法
静态方法只能访问静态属性
也就是static 所修饰的属性
追问
AB不是静态的我理解了。那CD是什么意思,我知道这叫调用,别的就不知道了
回答
pubic int change(int c){return c} //这种函数带有返回类型,执行完会int类型的数,数值打下就是return 返会的值,因此
p.change(30) 调用该函数会返回一个int类型的30
等价于i=30
java中若不赋值int 默认为0
D 等价于i=0
追问
第二题调用那块不太明白。
那如果改成t.change(30)或者p.b还可以么?
回答
可以改成p.a;
p->父类  a是父类的属性
t->子类   b是子类的属性
p.b 是错误的。
哪怕person p= new Teacher()
也不可以使用p.b  因为
父类类型的引用,指向子类型。可以调用父类中定义的所有属性和方法,而对于子类中定义而父类中没有的方法,属性,是不可以使用的
追问
谢谢,不好意思只能采纳一个,你和流风子云协商一下吧

java继承多态的练习题

2014-09-04 09:07 优土壁  |  分类:JAVA相关  |  浏览403次

java继承多态的练习题

java继承多态的练习题


java继承多态的练习题

java继承多态的练习题

这两道题,完全没思路,求详解

2014-09-04 09:33 提问者采纳
Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。
java多态存在的三个必要条件:
1.需要有继承关系的存在
2.需要有方法的重写
3.需要有父类的引用指向子类对象
希望对你有帮助。
第一题应该选D,第二题选C,D。
第一题属于多态,methodB()方法属于子类,父类没有重写子类的方法
第二题属于继承,子类可以继承父类的方法
追问
第二题调用那块不太明白。
那如果改成t.change(30)或者p.b还可以么?
回答
t.change(30)可以,因为t这个对象继承了Person类

p.b不可以,因为Person类中没有b这个属性,只能p.a
追问
谢谢,不好意思只能采纳一个,你和ZY1404协商一下吧
提问者评价
谢谢!
评论  |  2  0

java继承多态的练习题

流风子云 | 八级 采纳率36%

擅长: JAVA相关 JavaScript

按默认排序 | 按时间排序

其他6条回答

2014-09-04 09:24 zy1404  | 九级
1.D

父类类型的引用,指向子类型。可以调用父类中定义的所有属性和方法,而对于子类中定义而父类中没有的方法,它是无可奈何的;
2. C,D
要想使用a,必须使用p.a才能调用a,这是类的封装性的体现
对于b的调用也是类似
追问
CD为什么是对的,AB为什么是错的
回答
首先main函数属于静态方法
静态方法只能访问静态属性
也就是static 所修饰的属性
追问
AB不是静态的我理解了。那CD是什么意思,我知道这叫调用,别的就不知道了
回答
pubic int change(int c){return c} //这种函数带有返回类型,执行完会int类型的数,数值打下就是return 返会的值,因此
p.change(30) 调用该函数会返回一个int类型的30
等价于i=30
java中若不赋值int 默认为0
D 等价于i=0
追问
第二题调用那块不太明白。
那如果改成t.change(30)或者p.b还可以么?
回答
可以改成p.a;
p->父类  a是父类的属性
t->子类   b是子类的属性
p.b 是错误的。
哪怕person p= new Teacher()
也不可以使用p.b  因为
父类类型的引用,指向子类型。可以调用父类中定义的所有属性和方法,而对于子类中定义而父类中没有的方法,属性,是不可以使用的
追问
谢谢,不好意思只能采纳一个,你和流风子云协商一下吧