Java语言程序设计教程(第二版)翁 凯 肖少拥 王行言-第6章--继承与多态

内容发布更新时间 : 2025/7/9 21:43:58星期一 下面是文章的全部内容请认真阅读。

第6章 继承与多态

思考题与习题

一、概念思考题

1.父类和子类之间的关系是怎样的? 解答:

是继承关系,子类继承父类。有public,protected,private三种继承方式。

2.继承如何支持了软件重用? 解答:

在继承中,新的类是基于一个已经存在的基础雷尔定义出来的,通过继承,新的类自动获得了基础类中的所有成员,包括成员变量、方法和各种访问属性的成员,无论时public还是private。在继承后,程序员还可以加入自己定义的新的成员,包括变量和方法。通过继承来定义新的类,远比从头开始写一个新的类要简单快捷和方便,以上便是对代码的重用。

3.protected的含义是什么? 解答:

含义:只有包内其他类、自己和子类可以访问。

4.super有什么作用? 解答:

super表示超类或父类,其只能在子类中使用,可以访问父类中的实例变量、实例方法、还可以访问父类的构造方法(这个super()必须写在构造方法的第一行,而且每个构造方法只能有一个super())。

5.interface与class有什么异同之处? 解答:

相同点:

1)都可以定义抽象方法; 2)都不能实例化对象;

3)定义的抽象方法都需要被重写;

4)都可以定义public static方法, public static final常量。

不同点: 1)意义不同

抽象类是对事物更高层级的抽象; 接口是对功能的封装。 2)定义方式不同

抽象类用 abstract class定义; 接口用interface定义。 3)内容不同

抽象类中除了抽象方法外,还可以定义构造方法等普通类中定义的所有成员。

接口除了public abstract方法, public static final常量 , public static 方法, public default方法等这四个内容外, 不能定义构造方法等内容

4)使用方式不同

抽象类需要被子类extends继承; 接口需要被实现类implements实现。 5)类只支持单继承, 接口支持多继承。 6)应用场景不同

一般情况下, 对类进行功能的扩展,优先选择接口。

除了扩展功能外, 还需要保存不同的数据,只能选择抽象类;抽象类的抽象方法需要子类重写, 抽象类还可以约束所有的子类都具有相同的功能。

6.覆盖与重载有什么关系? 解答:

--方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系

--覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。

--覆盖要求参数列表相同;重载要求参数列表不同。

--覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关系,是根据调 用时的实参表与形参表来选择方法体的。

7.Java缺省使用何种绑定方式? 解答:

动态绑定,缺省意味着它不属于程序执行前的编译阶段确定的绑定。

8.什么样的方法会被静态绑定调用? 解答:

final、static、private等方法在程序执行前已经被绑定,也就是说在编译过程中就已经知道这个方法是哪个类的方法,故这三种方法会被静态绑定调用。

9.绑定方式是由方法自身所决定的还是在调用方法的时候决定的? 解答:

>>展开全文<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4 ceshi