143、a) 多态有助于消除 _逻辑。b) 如果一个类至少包含一个抽象方法,它是一个 类。c) 可以用来实例化对象的类被称为 _类。d) _涉及使用超类变量来调用超类和子类对象上的方法,使你能够“泛型编程”。e) 不是接口方法且未提供实现的方法必须使用关键字 _声明。f) 将存储在超类变量中的引用转换为子类类型称为 。
a) 重复 b) 抽象 c) 具体 d) 多态 e) abstract f) 向下转型
144、判断以下关于面向对象编程概念的描述是否正确:a) 可以以相似的方式处理超类对象和子类对象。b) 抽象类中的所有方法都必须声明为抽象方法。c) 尝试通过子类变量调用子类特有的方法是危险的。d) 如果超类声明了一个抽象方法,子类必须实现该方法。e) 实现某个接口的类的对象可以被视为该接口类型的对象。
a正确;b错误;c错误;d正确;e正确
145、多态性如何使你能够“泛泛编程”而非“具体编程”?讨论“泛泛编程”的关键优势。
多态性使程序可以将类层次结构中共享同一超类的对象当作超类的对象来处理,无需针对每个子类编写特定代码,实现“泛泛编程”。
“泛泛编程”的关键优势在于简化编程,还能让系统易于扩展和维护,添加新类时,对程序主体部分修改很少或无需修改。
146、什么是抽象方法?描述在哪些情况下使用抽象方法是合适的。
- 抽象方法 是在声明中带有关键字
abstract的方法,它不提供具体实现。 - 当一个类作为超类,需要为子类提供一个通用的设计框架,但某些方法的具体实现需要根据子类的不同而有所变化时,使用抽象方法是合适的。
- 例如,在图形绘制程序中,抽象超类
Shape声明了抽象方法draw,每个具体的子类(如Circle、Triangle等)需要根据自身形状的特点来实现draw方法。 - 再如,在操作系统的设备驱动程序中,抽象超类为所有设备驱动程序提供一个“接口”,设备驱动方法被声明为抽象方法,每个具体的设备驱动子类需要根据特定设备类型来实现这些方法。
147、多态性是如何促进可扩展性的?
多态性使程序能够将类层次结构中共享同一超类的对象当作超类的对象来处理。在设计和实现系统时,只要新类属于程序可通用处理的继承层次结构,就可以在几乎不修改程序通用部分的情况下添加新类。只有那些需要直接了解程序员添加到层次结构中的新类的部分程序,才必须进行修改以适应新类。
148、讨论将超类和子类引用赋值给超类和子类类型变量的四种方式。
- 将超类引用赋值给超类变量很直接;
- 将子类引用赋值给子类变量也很直接;
- 将子类引用赋值给超类变量是安全的,因为子类对象也是其超类的对象,但该引用只能用于引用超类成员,若通过超类变量引用子类特有的成员,编译器会报错;
- 尝试将超类引用赋值给子类变量会导致编译错误,为避免此错误,必须将超类引用显式转换为子类类型。在执行时,若引用所指对象不是子类对象,会抛出异常。可以使用
instanceof运算符确保仅当对象是子类对象时才进行此类转换。
149、a) 多态有助于消除 _逻辑。b) 如果一个类至少包含一个抽象方法,它是一个 类。c) 可以用来实例化对象的类被称为 _类。d) _涉及使用超类变量来调用超类和子类对象上的方法,使你能够“泛型编程”。e) 不是接口方法且不提供实现的方法必须使用关键字 _声明。f) 将存储在超类变量中的引用转换为子类类型称为 。
a) 重复 b) 抽象 c) 具体 d) 多态 e) abstract f) 向下转型
150、判断以下关于面向对象编程概念的陈述是否正确:a) 可以以相似的方式处理超类对象和子类对象。b) 抽象类中的所有方法都必须声明为抽象方法。c) 尝试通过子类变量调用子类独有的方法是危险的。d) 如果超类声明了一个抽象方法,子类必须实现该方法。e) 实现某个接口的类的对象可以被视为该接口类型的对象。
a正确;b错误;c错误;d正确;e正确
151、多态性如何使你能够“泛泛编程”而非“具体编程”?讨论“泛泛编程”的主要优势。
- 多态性使你能编写处理类层次结构中共享同一超类的对象的程序,就好像它们都是超类的对象,从而实现“泛泛编程”。
- 主要优势有:
- 简化编程:程序员可以在不了解对象具体类型的情况下指挥对象做出合适的行为;
- 促进系统的可扩展性:新的类可以加入系统,而不需要对程序的通用部分进行大量修改;
- 提高软件的可维护性:因为系统的核心部分不需要频繁修改以适应新的类。
152、什么是抽象方法?请描述适合使用抽象方法的情形。
-
抽象方法是在声明中带有关键字
abstract的方法,不提供具体实现。 -
适合使用抽象方法的情形包括:
- 抽象类为子类提供通用设计,子类需根据自身特性实现具体方法;
- 在类层次结构中,上级类无法

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



