第五章 继承与多态

时间:2021-07-12
本文章向大家介绍第五章 继承与多态,主要包括第五章 继承与多态使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

一、小结

  本章主要讲解了Java语言面向对象的特性,包括继承简介、子类的继承、多态、抽象类、final修饰符、内部类。通过本章的学习,读者应该熟练掌握Java语言中继承和多态的操作;重点理解super关键字和final修饰符。另外,需要掌握抽象类和抽象方法的规则,通过程序更好理解抽象类的使用。

二、测验

 抽象方法只有函数声明,没有函数体。

 super关键字:子类和父类成员变量或成员方法同名时调用

 三、习题

1、 创建如下类:Circle类(圆形)、Square类(正方形)和Point类(点)。Point根据(x,y)坐标定位。Circle除了一个(x,y)坐标点之外,还有半径属性。正方形除了一个(x,y)坐标点之外,还有边长。请问:这些类中哪些是超类,哪些是子类?

Java中的超类就是父类

Point类是超类,Circle类和Square类是子类。

2、关键字组合问题。

(1)abstract方法能否是final类型的? 不行

abstract修饰的类需要被子类继承,abstract修饰的方法需要子类重写,但是final修饰的类不能被继承,final修饰的方法也不能被子类重写。

(2)abstract方法能否是static类型的?  不行

因为静态方法是属于类的,所以静态方法必须满足给类调用,如果通过类无法调用,那么这种静态方法肯定是不对的。为了达到这一要求,static方法就必须有方法体,即已经实现了,也就不是抽象方法了。

另:抽象方法也不能被private修饰:因为abstract修饰的方法必须通过子类重写才有效,而private修饰的方法对子类不可见,即父类中如果存在private abstract void out();而子类中有private void out(){},则它们是两个不同的方法,子类中的out方法不是对父类的重写,而是属于子类独有的方法。

(3)能否定义一个私有静态(private static)方法? 不行

private:在学习继承的过程中,我们知道,如果在父类中修饰了一个private的方法,子类继承之后,对子类也是不可见的。子类重写则在编译阶段就会报错。

static:Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。static方法类的任何实例都不相关,所以概念上不适用。

5-3  简单说明方法重载与方法覆盖的区别。

方法的重载是指在一个类中,出现多个方法名相同,但参数个数或参数类型不同的方法。方法覆盖体现了子类补充或者改变父类方法的能力,通过覆盖,可以使一个方法在不同的子类中表现出不同的行为。

5-4  列举出面向对象的三大特性。

封装、继承、多态

原文地址:https://www.cnblogs.com/amazingj/p/15003890.html