1.概述

1.1、继承的由来
至于由来简单一句话:多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为。

继承描述的是事物之间的所属关系,这种关系是 is-a 的关系。

1.2、继承的定义
继承:就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。

这里再声明一点,父类又称为超类或者基类。而子类又称为派生类这点很基础!

1.3、继承的优点
提高代码的复用性。
类与类之间产生关系,为多态做了完美的铺垫(不理解没关系,之后我会再写一篇多态的文章)
虽然继承的优点很多但是Java只支持单继承,不支持多继承。

1.4、继承的格式
通过 extends 关键字,可以声明一个子类继承另外一个父类,定义格式如下:

  class 父类 {... }class 子类 extends 父类 { ...
}

2.关于继承之后的成员变量

当类之间产生了关系后,其中各类中的成员变量,产生了哪些影响呢? 关于继承之后的成员变量要从两方面下手,一是成员变量不重名方面,二是成员变量重名方面。

如果子类父类中出现不重名的成员变量,这时的访问是没有影响的.

如果子类父类中出现重名的成员变量,这时的访问是有影响的
子父类中出现了同名的成员变量时,在子类中需要访问父类中非私有成员变量时,需要使用 super 关键字,至于修饰父类成员变量,类似于之前学过的 this 。 使用格式 super.父类成员变量名

如果父类中的成员变量非私有:子类中可以直接访问。私有:子类是不能直接访问的。

3.关于继承之后的成员方法

当类之间产生了关系,其中各类中的成员方法,又产生了哪些影响呢? 同样我们依旧从两方面分析。

如果子类父类中出现不重名的成员方法,这时的调用是没有影响的。对象调用方法时,会先在子类中查找有没有对 应的方法,若子类中存在就会执行子类中的方法,若子类中不存在就会执行父类中相应的方法.

成员方法重名大体也可以分两种情况:
1、方法名相同返回值类型、参数列表却不相同(优先在子类查找,没找到就去父类)
2、方法名、返回值类型、参数列表都相同,没错这就是重写(Override)

重写 :子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),会出现覆盖效果,也称为重写或者复写。声明不变,重新实现。

4.关于继承之后的构造方法

构造方法的名字是与类名一致的,所以子类是无法继承父类构造方法的。

构造方法的作用是初始化成员变量的。所以子类的初始化过程中,必须先执行父类的初始化动作。子类的构造方法中默认会在第一句代码中添加super(),表示调用父类的构造方法,父类成员变量初始化后,才可以给子类使用。

super() 不写也默认存在,而且只能是在第一句代码中。
下一篇是关于this与super关键字的总结。

JAVA知识基础(八):继承相关推荐

  1. 【Scala教程】如何在已掌握的Java知识基础上快速上手Scala?【个人学习记录】

    如何在已掌握的Java知识基础上学习Scala 前言 正文开始! 1. 编译运行 2. 声明变量 3. 输出 4. 显式指定变量类型 5. 范围区间 6. 写入文本文件 7. 读取文本文件 8. if ...

  2. JAVA常用基础知识点[继承,抽象,接口,静态,枚举,反射,泛型,多线程...]

    类的继承 Java只支持单继承,不允许多重继承 - 一个子类只能有一个父类 - 一个父类可以派生出多个子类 这里写图片描述 子类继承了父类,就继承了父类的方法和属性. 在子类中,可以使用父类中定义的方 ...

  3. JAVA常用基础知识点[继承,抽象,接口,静态,枚举,反射,泛型,多线程.]

    类的继承 Java只支持单继承,不允许多重继承  - 一个子类只能有一个父类  - 一个父类可以派生出多个子类    子类继承了父类,就继承了父类的方法和属性.  在子类中,可以使用父类中定义的方法和 ...

  4. JAVA知识基础(十):多态

    1.概述 1.1多态的定义 多态是同一个行为具有多个不同表现形式或形态的能力. 多态就是同一个接口,使用不同的实例而执行不同操作. 多态性是对象多种表现形式的体现. 1.2多态的优点 消除类型之间的耦 ...

  5. JAVA知识基础(一):数据类型

    在我们学习一门编程语言时,最先要了解的就是数据类型,而数据类型又都是抽象的概念,初学者理解起来比较困难,所以我们往往是先应用再理解,但是在本篇文章我决定用先理解再应用的方式尝试一下,试试效果. 1.对 ...

  6. JAVA知识基础(十一):异常

    1.异常的概念 简单说就是不正常运行,最终导致JVM的非正常停止. 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象.Java处理异常的方式是中断处理. ...

  7. JAVA知识基础(六):抽象

    1.概述 抽象类.抽象方法以及接口,这三个知识点是每个程序员必备的基础,无论是在实际编程的时候,还是在面试的时候,都会出现这类问题,面试官很可能就会问你,interface和abstract的区别 当 ...

  8. JAVA知识基础(三):修饰符

    JAVA中根据修饰对象的不同可以分为类修饰符.方法修饰符.变量修饰符三类,其中每种修饰符又可以单独分成两类:访问修饰符和非访问修饰符.为了便于理解,本文以访问和非访问的角度展开. 1.访问修饰符 访问 ...

  9. JAVA知识基础(九):this、super 关键字总结

    1.this关键字 this有三种常见用法 1.this调用本类中的属性,也就是类中的成员变量 2.this调用本类中的其他方法 3.this调用本类中的其他构造方法,调用时要放在构造方法的首行. 2 ...

最新文章

  1. python新手入门英文词汇笔记(1-1)_Python新手入门英文词汇(1-1)
  2. 网速变得奇慢说明可能需要安装金山ARP防火墙了
  3. 机器学习之Stacking原理与实战
  4. Android 进程间通信——Service、Messenger
  5. spring cloud gateway Unhandled failure: Only one connection receive subscriber allowed.
  6. 用单片机测量流体流速的_旋进旋涡流量计的测量原理及优点
  7. 非基元类型数据结构_Java数据类型–基元和二进制文字
  8. python申明变量和赋值_Python入门(二)
  9. J2EE6 servlet session超时机制
  10. php抓取微信公众号文章 封面图,教你如何一键提取微信公众号文章的封面图
  11. 介绍一种养眼的IDEA/Pycharm/Clion配色方案
  12. deficit记忆_背单词:不要让“捷径”欺骗你的记忆
  13. python热力图参数_python3.5数据处理——百度地图热力图传值
  14. javaFX学习笔记之 管理Web弹出式窗口
  15. 产品读书《数据产品经理必修课:从零经验到令人惊艳》别读了!!!
  16. 共阳极管的代码_共阳极数码管显示
  17. Python两个列表交错合并方法
  18. UltraEdit 不能复制粘贴
  19. Self-Intro.
  20. 工作中常见的开会问题

热门文章

  1. java对象深克隆_JAVA中对象的克隆及深拷贝和浅拷贝
  2. CTF工具-gdb简介
  3. python下标从0开始_从零学Python之入门(三)序列
  4. android+水滴粘性动画,Android控件实现水滴效果
  5. Python学习笔记(4):Python如何设置类似C语言静态函数
  6. linux龙芯自动挂载u盘,Windows Subsystem for Linux (WSL)挂载移动硬盘U盘
  7. mysql存儲過程_Mysql存儲過程 | 學步園
  8. 无法启动mysqll1006_CentOS7下MySQL服务启动失败原因及解决方法
  9. 用于用户C语言标识符,下列可用于C语言用户标识符的一组是( )
  10. IDEA/Tomcat 原理:如何将 Tomcat 集成到 IDEA?实现由传统部署延伸到热部署 Java EE 项目?