java语言程序设计基础篇习题_复习题_第十一章
11.1 下面说法是真是假?一个子类是父类的子集。
11.2 使用什么关键字来定义一个子类
11.3 什么是单一继承?什么是多重继承?java支持多重继承吗?
11.4 下面 a 中类 C的运行结果输出什么?编译b 中的程序的时候将出现什么问題?
11.5 子类如何调用它的父类的构造方法?
11.6 下面的说法是真是假: 当从子类调用构造方法时, 它的父类的无参构造方法总是会被调用?
11.7 下面说法是真是假: 可以重写父类中定义的私有方法?
11.8 下面说法是真是假: 可以重写父类中定义的静态方法?
11.9 如何从子类中显式的调用父类的构造方法?
11.10 如何从子类中调用一个被重写的父类的方法?
11.11 指出下面代码的错误
11.12 解释方法重载和方法重写的不同之处。
11.13 如果子类中的方法具有和它父类中的方法完全相同的方法签名,且返回值类型也相同,那么这是方法重写还是方法重载呢?
11.14 如果子类中的一个方法具有和它父类中的方法完全相同的方法签名, 但返回值类型不相同, 这会存在问题吗?
11.15 如果子类中的一个方法具有和它父类中的方法相同的名字,但参数类型不同,那么这是方法写还是方法重载呢?
11.17 什么是多态?什么是动态绑定?
11.18 描述方法匹配和方法绑定之间的不同。
11.1 下面说法是真是假?一个子类是父类的子集。
答:假,子类是父类的扩展,并不是子集。
11.2 使用什么关键字来定义一个子类
答:extends前的是子类,后面的是父类
11.3 什么是单一继承?什么是多重继承?java支持多重继承吗?
答:某些程序设计语言是允许从几个类派生出一个子类的。这种能力称为多重继承(multipleinheritance) 。 但是在 Java中是不允许多重继承的。 一个 Java类只可能直接继承自一个父类。这种限制称为单一继承(single inheritance) 。 如果使用extends关键字来定义一个子类, 它只允许有一个父类。
11.4 下面 a 中类 C的运行结果输出什么?编译b 中的程序的时候将出现什么问題?
答:a中在C类中创建了B类的对象,这个时候先要调用A类的构造函数,打印出A()中的那句话;b中A没有无参构造函数,会报错
11.5 子类如何调用它的父类的构造方法?
答:super
11.6 下面的说法是真是假: 当从子类调用构造方法时, 它的父类的无参构造方法总是会被调用?
答:假,如果通过参数调用呢
11.7 下面说法是真是假: 可以重写父类中定义的私有方法?
答:假,私有方法无法访问,不能重写
11.8 下面说法是真是假: 可以重写父类中定义的静态方法?
答:假,不可以
11.9 如何从子类中显式的调用父类的构造方法?
答:父类()
11.10 如何从子类中调用一个被重写的父类的方法?
答:子类.该方法
11.11 指出下面代码的错误
答:这里B类的重写中getArea()缺少super引用父类的方法。这样会重复调用本地的方法,陷入死循环。
11.12 解释方法重载和方法重写的不同之处。
答:方法重写发生在通过继承而相关的不同类中; 方法重载可以发生在同一个类中, 也可以发生在由于继承而相关的不同类中。方法重写具有同样的签名和返回值类型;方法重载具有同样的名字, 但是不同的参数列表
11.13 如果子类中的方法具有和它父类中的方法完全相同的方法签名,且返回值类型也相同,那么这是方法重写还是方法重载呢?
答:重写
11.14 如果子类中的一个方法具有和它父类中的方法完全相同的方法签名, 但返回值类型不相同, 这会存在问题吗?
答:会有问题。无法确定
11.15 如果子类中的一个方法具有和它父类中的方法相同的名字,但参数类型不同,那么这是方法写还是方法重载呢?
答:重载
11.17 什么是多态?什么是动态绑定?
答:多态就好像中国的太极,道。可容万类,可化万类。动态绑定,就是你用哪个类,这个方法就调用那个类的方法。
11.18 描述方法匹配和方法绑定之间的不同。
答:引用变量的声明类型决定了编译时匹配哪个方法。 而方法绑定贼没有在编译的时候匹配某个方法,而是在实例形成的时候动态绑定的。