更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.http://www.wodefanwen.com//club/5346389)欢迎?加入...欢迎?交流...止不住的惊喜等着你.........
}
public Test(String s){ super(s);
System.out.println(\ }
public Test(){ this(\ }
} www.Examda.CoM class TT{ public TT(){
System.out.println(\ }
public TT(String s){ this();
System.out.println(\ } }
结果:________
8.父类的成员在子类中的访问权限由决定。
9.对象的使用包括引用对象的成员变量和方法。通过运算符就能实现对对象成员变量的访问和对象
10.Java是面向对象语言,对象是客观事物的,对象与之是一一对应的,它是很具体的概念。
参考答案:
l.答:继承是面向对象程序设计中两个类之间的一种关系。当一个类获取另一个类中所有非私有的数据和操作的定义作为它自己的部分或全部成分时,就称这两个类之间具有继承关系。被继承的类称为父类或超类,继承了父类或超类的所有数据和操作的类称为子类。
面向对象程序设计中的继承,可使得程序结构更加清晰,降低了编码和维护的工作量。如果一个类只能有一个父类,则这种继承关系称为单重继承;如果一个类可以有多个父类,则这种继承关系称为多重继承。
2.答:
父类SuperClass
父类的域data来源:考试大的美女编辑们 父类的方法setData(),getData() 子类SubClass
子类的域data,subData
子类的方法setSubData(),setData(),getData()采集者退散
3.答:这种说法是错误的,因为子类不一定能继承父类的所有域和方法,它只能继承所有非私有的域和方法。如果子类在继承之外自己定义的域和方法数目小于父类中私有成员的数目,则子类的域和方法的数目小于父类的域和方法的数目|考试大收集整理
4. true 5. A D
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.http://www.wodefanwen.com//club/5346389)欢迎?加入...欢迎?交流...止不住的惊喜等着你.........
6. Object 7. 答:
What a pleasure! I am Tom
How do you do? 8. 访问权限修饰符 9. “.” 10.软件模型
自考Java语言程序设计(一)第六章重载与多态课后习题
六、重载与多态
1.判断:接口中的所有方法都没有被实现。() 2.方法重载是指 ( )
A.两个或两个以上的方法取相同的方法名,但形参的个数或类型不同考试大论坛 B.两个以上的方法取相同的名字和具有相同的参数个数,但形参的类型可以不同 C.两个以上的方法名字不同,但形参的个数或类型相同
D.两个以上的方法取相同的方法名,并且方法的返回类型相同?
3.什么是方法的覆盖?方法的覆盖与域的隐藏有何不同?与方法的重载有何不同? 4.解释this和super的意义和作用。 5.什么是多态?面向对象程序设计为什么要引人多态的特性?使用多态有什么优点? 6.Java程序如何实现多态?有哪些方式?
7.根据下面的要求编程实现复数类ComplexNumber。 (1)复数类ComplexNumber的属性
·m_dRealPart实部,代表复数的实数部分。 ·m_dlmaginPart虚部,代表复数的虚数部分。 (2)复数类ComplexNumber的方法
·ComplexNumber()构造方法,将实部、虚部都置为0。
·ComplexNumber(doubler,doublei)构造方法,创建复数对象的同时完成复数的实部、虚部的初始化;r为实部的初值,i为虚部的初值。
·getRealPart()获得复数对象的实部。
·getlmaginaryPart()获得复数对象的虚部。
·setRealPart(doubled)把当前复数对象的实部设置为给定的形参的数字。 ·setlmaginaryPart(doubled)把当前复数对象的虚部设置为给定形参的数字。
·complexAdd(ComplexNumberc)当前复数对象与形参复数对象相加,所得的结果也是复数值,返回给此方法的调用者。
·complexAdd(doublec)当前复数对象与形参实数对象相加,所得的结果仍是复数值,返回给此方法的调用者。
·complexMinus(ComplexNumberc)当前复数对象与形参复数对象相减,所得的结果也是复数值,返回给此方法的调用者。
8.什么是接口?为什么要定义接口?接口与类有何异同?来源:考试大的美女编辑们 9.一个类如何实现接口?实现某接口的类是否一定要重载该接口中的所有抽象方法?
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.http://www.wodefanwen.com//club/5346389)欢迎?加入...欢迎?交流...止不住的惊喜等着你.........
10.接口是否可以被继承?阅读下面的代码,试写出SubInterface中的抽象方法。 interface SupInterface {
public abstract int supMethod(); }
interface SubInterface extends SupInterface {
public abstract string subMethod(); }
参考答案: 1. true 2.A
3.答:子类重新定义父类中已经存在的方法,称为方法的覆盖。注意:方法覆盖与域的隐藏不同。子类重新定义父类已有的域,并不能完全取代它从父类那 里继承的同名的域,这个域仍然占用子类的内存空间,在某些情况下会被使用;而当子类重新定义父类的方法时,从父类那里继承来的方法将被新方法完全取代,不 再在子类的内存空间中占一席之地。与方法的覆盖不同,重载不是子类对父类同名方法的重新定义,而是在一个类中定义了同名的不同方法。
4.答:关键字this指代当前类的当前对象,关键字super指代当前类的直接父类对象。考试大-全国最大教育类网站(www.Examda。com)
5.答:一个类中存在多个同名的方法,称为多态。把抽象功能和目的相同,而具体实现因不同情况而异的方法命名为同名方法,符合面向对象程序设计中抽象、提升概念,封装、隐藏细节的特点,从而提高了程序的简洁性和可读性,降低了类和程序模块直接的相互耦合和依赖。
6.答:Java程序通过覆盖和重载两种方式来实现多态。覆盖是子类重新定义父类中已有的方法,重载是在一个类内部定义与已存在的方法同名但是参数列表不同的方法。
7.答:
public class ch5_e5_12 {
public static void main(String args[]) {
ComplexNumber cNumber_1 = new ComplexNumber(3,-5);
ComplexNumber cNumber_2 = 本文来源:考试大网 new ComplexNumber(2,2); double d = 10.0;
System.out.println(cNumber_1.toString() + \加 \ + cNumber_2.toString() + \等于 \
+ cNumber_1.complexAdd(cNumber_2).toString()); System.out.println(cNumber_1.toString() + \加 \ + d + \等于 \
+ cNumber_1.complexAdd(d).toString());
System.out.println(cNumber_1.toString() + \减 \ + cNumber_2.toString() + \等于 \
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.http://www.wodefanwen.com//club/5346389)欢迎?加入...欢迎?交流...止不住的惊喜等着你.........
+ cNumber_1.complexMinus(cNumber_2).toString()); System.out.println(cNumber_1.toString() + \减 \+ d + \等于 \
+ cNumber_1.complexMinus(d).toString());
System.out.println(cNumber_1.toString() + \乘 \+ cNumber_2.toString() + \等于 \
+ cNumber_1.complexMulti(cNumber_2).toString()); System.out.println(cNumber_1.toString() + \乘 \+ d + \等于 \
+ cNumber_1.complexMulti(d).toString()); } }
class ComplexNumber { //域
private double m_dRealPart; private double m_dImaginPart; //构造方法
ComplexNumber() {
m_dRealPart = 0.0; m_dImaginPart = 0.0; }
ComplexNumber(double r,double i) {
m_dRealPart = r; m_dImaginPart = i; }
ComplexNumber(ComplexNumber c) {
m_dRealPart = c.getRealPart();
m_dImaginPart = c.getImaginaryPart(); }
//get,set方法
double getRealPart() {
return m_dRealPart; }
double getImaginaryPart() {
return m_dImaginPart; }
void setRealPart(double d) {
更多优质自考资料尽在百度贴吧自考乐园俱乐部
(http://tieba.http://www.wodefanwen.com//club/5346389)欢迎?加入...欢迎?交流...止不住的惊喜等着你.........
m_dRealPart = d; }
void setImaginaryPart(double d) {
m_dImaginPart = d; }
//复数运算方法
ComplexNumber complexAdd(ComplexNumber c) {
return new ComplexNumber(
this.m_dRealPart + c.getRealPart(),
this.m_dImaginPart + c.getImaginaryPart()); }
ComplexNumber complexAdd(double c) {
return new ComplexNumber(
this.m_dRealPart + c, this.m_dImaginPart); }
ComplexNumber complexMinus(ComplexNumber c) {
return new ComplexNumber(
this.m_dRealPart - c.getRealPart(),
this.m_dImaginPart - c.getImaginaryPart()); }
ComplexNumber complexMinus(double c) {来源:www.examda.com return new ComplexNumber(
this.m_dRealPart - c, this.m_dImaginPart); }
ComplexNumber complexMulti(ComplexNumber c) {
return new ComplexNumber(
this.m_dRealPart * c.getRealPart()
- this.m_dImaginPart * c.getImaginaryPart(), this.m_dRealPart * c.getImaginaryPart() + this.m_dImaginPart * c.getRealPart()); }
ComplexNumber complexMulti(double c) {
return new ComplexNumber(
this.m_dRealPart * c, this.m_dImaginPart * c); }
//toString()
public String toString()