面向对象-继承-重写override(2020-01-06)

什么是继承?

继承是面向对象三大特征之- - 。java中的继承描述的是两个类之间的关系,被继承的类称为父类,继承的类称为子类,使用extends关键字来表示。

在java语言里面只支持单继承

,即-一个类只能有一-个父类,子类可以继承父类中的非private修饰的成员方法和成员变量,构造方法不能被继承,java里面的继承跟现实生活中的继承颇为相似,现实生活中- -个儿子只能有一-个父亲, 儿子可以继承父亲的房子车子但是不能继承父亲大脑里面的思想和知识。

如果一个类没有显示的继承其他类, 那么这个类会默认继承0bject类,Object是SUN公司提供的java中的根类。


继承的优点

■提高了代码的复用性

■提高了代码的维护性

■让类与类之间产生了关系,是多态的前提

继承的缺点

增强了类之间的耦合。

软件开发的一个原则是高内聚,低耦合。

内聚是一个模块内各个元素彼此结合的紧密程度

耦合是一个软件里面不同模块之间相互连接的数量

 注意:

1.error子类不能访问父类中的private的修饰方法

2.子类是可以访问到其祖先类的方法的


重写

重写也叫覆盖,当父类中的方法无法满足子类需求时,子类可以将父类的方法重写编写来满足需求。比如孩子继承了父亲的房子,可以将房子重新装修。

方法重写的条件:

1.两个必须是继承关系

2.必须具有相同的方法名,相同的返回值类型,相同的参数列表。

3.重写的方法不能比被重写的方法拥有更低的访问权限。

4.重写的方法不能比被重写的方法抛出更宽泛的异常。(关于异常后面的章节再讲。)

5.私有的方法不能被重写。

6.构造方法无法被重写,因为构造方法无法被继承。

7.静态的方法不存在重写。

8.重写指的是成员方法,和成员变量无关。

什么是super?

super代表的是当前子类对象中的父类型特征。

什么时候使用super?

.子类和父类中都有某个数据,例如,子类和父类中都有name这个属性。如果要再子类中访问父类中的name属性,需要使用super。例1

的name属性,需要使用super。例1

■子类调用父类中的构造方法时,需要使用super。

注意: super不能用在静态方法中。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第四章 面向对象 面向对象思想 面向对象思想的引入前面我们讲过数组,当有多个数组都需要遍历时,我们可以将遍历的代码...
    chongsheng阅读 3,790评论 0 0
  • 深入构造器 构造器用于在创建实例时执行初始化。构造器是创建对象的重要途径(即使使用工厂模式、反射等方式创建对象,其...
    凌寒天下独自舞阅读 2,532评论 0 1
  • java继承 继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。 继承就是子类继...
    863cda997e42阅读 3,919评论 0 1
  • 我从东边来 你从西边来 也没有想到 可以在路上碰到 世界总是很奇妙 时间把你掐得刚刚好 没有早一点 没有晚一点 给...
    silvincent阅读 2,271评论 1 12
  • 【今日话题】希望与之共事的人的特质 你希望跟你共事的人有什么特质?为什么? 我希望与我共事的人,忠诚,善于沟通,善...
    Silvia花花阅读 5,071评论 0 0