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 如果子类中的一个方法具有和它父类中的方法相同的名字,但参数类型不同,那么这是方法写还是
方法重载呢?
答:重载 ///@Override
11.16 答:避免重写发生错误;
11.17 什么是多态?什么是动态绑定?
答:多态就好像中国的太极,可容万类,可化万类。动态绑定,就是你用哪个类,这个方法就调用那个类的
方法。
11.18 描述方法匹配和方法绑定之间的不同。
答:引用变量的声明类型决定了编译时匹配哪个方法。 而方法绑定贼没有在编译的时候匹配某个方法,
而是在实例形成的时候动态绑定的。
11.19 答:可以
11.20 答: int 类型不能通过类 Object 来传
11.21 答:A: Person //Student B: Person //Student、
11.22 答:没有调用
11.23 答:40 is from A//21 is from B
11.24 false false
11.25 true true true false //不能 //能
11.26 true false true true false true true false
Fruit 可以调用 orange 不可以
Orange 可以调用 fruit 不可以
11.27 不合法
不合法
合法
11.27 fruit 使 Friut 的对象 而 Apple 为他的子类;不能把 fruit 转换成 Apple 类的对象付给 object
11.28 答:都有 Java 自带的类 更具情况而定;
11.29 答:false false
11.30 答:ArrayListlist=new Arraylist();
List.add(a);
List.add(0,a);
List.size();
List.remove(a);
List.remove(list.size()-1,a);
List.contains(a);
List.index(a);
11.31 答:list.add(new java.util.Date())不能加入一个不定的对象
11.32 答:(“Houston”)能
11.33 答:因为数列的下标使从 0 开始的 list.remove(1)清除了第二个
11.34 答:数组为 Double 类型 添加的为 1 为 int 类型 应该在 1 前面加一个 double
11.35 答:把 int 改为 Integer
11.36 答: 把 int 改为 Integer 然后创建一个 array 对象 在引用;
11.37 答:default 默认
11.38 答:protected
11.39 答:能 //不能//能
11.40 答:不能//不能//能
11.41 答:在类前面加一个 final//在方法名的前面加一个 final
11.42 答:false
False
True
True
False
false