继承概述

继承概述

  • 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继那个类即可。
  • 多个类可以称为子类,单独这个类称为父类或者超类。
  • 子类可以直接访问父类中的非私有的属性和行为。
  • 通过 extends 关键字让类与类之间产生继承关系。
  • class SubDemo extends Demo{}

继承好处

  1. 提高了代码的复用性。
  2. 让类与类之间产生了关系,有了这个关系,才有了多态的特性。

继承特点

  1. Java只支持单继承,不支持多继承。
    • 一个类只能有一个父类,不可以有多个父类。
    • class SubDemo extends Demo{} //ok
    • class SubDemo extends Demo1,Demo2...//error
  2. Java支持多层继承(继承体系)
    • class A{}
    • class B extends A{}
    • class C extends B{}
  3. 定义继承需要注意:
    • 不要仅为了获取其他类中某个功能而去继承
    • 类与类之间要有所属( " is a " )关系,xx1是xx2的一种。

super关键字

super和this的用法相像

  • this代表本类对象的引用
  • super代表父类的内存空间的标识。

当子父类出现同名成员时,可以用super进行区分

子类要调用父类构造函数时,可以使用super语句:super();

函数覆盖(Override)

子类中出现与父类一模一样的方法时,会出现覆盖操作,也称为重写或者复写。

父类中的私有方法不可以被覆盖。

在子类覆盖方法中,继续使用被覆盖的方法可以通过super.函数名()获取。

覆盖注意事项:

  • 覆盖时,子类方法权限一定要大于等于父类方法权限
  • 静态只能覆盖静态。

覆盖的应用:

当子类需要父类的功能,而功能主体子类有自己特有内容时,可以复写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容。

子父类的关系

成员变量

子类只能访问父类的非私有成员变量

  • 若子类中含有父类的同名成员变量,访问本类用this,访问父类用super
  • 若子类中有,父类中没有,不可以使用super
  • 若子类中没有,父类中有,super,this指向同一个成员变量

成员函数

  • 子类可以复写父类中的成员函数,在多态的讨论中会详细解释

构造函数

  • 子类所有的构造函数第一行默认都有一条隐藏的super()语句
  • 当父类没有默认的空参数构造函数时,子类必须在构造函数第一行手动指定相应的super或者this语句

子类的实例化过程

子类中所有的构造函数默认都会访问父类中空参数的构造函数

因为每一个构造函数的第一行都有一条默认的语句super();

子类会具备父类中的数据,所以要先明确父类是如何对这些数据初始化的。

当父类中没有空参数的构造函数时,子类的构造函数必须通过this或者super语句指定要访问的构造函数。

finall关键字

final可以修饰类,方法,变量。

final修饰的类不可以被继承。

final修饰的方法不可以被覆盖。

final修饰的变量是一个常量。只能被赋值一次。

内部类只能访问被final修饰的局部变量。

Java笔记(十三)……面向对象III继承(inheritance)的更多相关文章

  1. Java笔记(九)……面向对象I

    面向对象概念 理解面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程 强调的是功能行为 面向对象 将功能封装进对象,强调具备了功能的对象. 面向对象是基于面向过程的. 面向 ...

  2. C++ Primer 学习笔记_69_面向对象编程 --继承情况下的类作用域

    面向对象编程 --继承情况下的类作用域 引言: 在继承情况下,派生类的作用域嵌套在基类作用域中:假设不能在派生类作用域中确定名字,就在外围基类作用域中查找该名字的定义. 正是这样的类作用域的层次嵌套使 ...

  3. java面向对象之 继承 Inheritance

    对象的一个新类可以从现有的类中派生,这个过程称为类继承.新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类).派生类可以从它的基类那里继承方法和实例变量,并且类可以修 ...

  4. java笔记之面向对象

    一.面向过程与面向对象的区别 1 面向过程:主要关注点是:实现的具体过程,因果关系[集成显卡的开发思路] * 优点:对于业务逻辑比较简单的程序,可以达到快速开发,前期投入成本较低. * 缺点:采用面向 ...

  5. Java笔记(十)……面向对象II封装(Encapsulation)

    封装概念 封装: 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 好处: 将变化隔离. 便于使用. 提高重用性. 提高安全性. 封装原则: 将不需要对外提供的内容都隐藏起来. 把属性都隐藏,提 ...

  6. 黑马程序员——【Java基础】——面向对象(一)概述、类与对象、继承、抽象类、接口、多态、内部类

    ---------- android培训.java培训.期待与您交流! ---------- 一.面向对象概述 1.面向对象:是一个很抽象的概念,它相对面向过程而言,是一种程序设计的思想. 2.面向对 ...

  7. JAVA 面向对象-2-继承(Inheritance)

    i.继承(Inheritance) 1.继承的概念 继承:在面向对象编程的过程中,通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类. 继承是面向对象编程最重要的特征之一. 继承的优点:1 ...

  8. Java学习笔记之---面向对象

    Java学习笔记之---面向对象 (一)封装 (1)封装的优点 良好的封装能够减少耦合. 类内部的结构可以自由修改. 可以对成员变量进行更精确的控制. 隐藏信息,实现细节. (2)实现封装的步骤 1. ...

  9. 面向对象第二个特征-继承(Inheritance)

    面向对象第二个特征-继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.java中的继承概述 1>.继承概述 多个类种存在相同属性和行为时,讲这 ...

随机推荐

  1. 细说PHP中strlen和mb_strlen的区别

    在PHP中,strlen与mb_strlen是求字符串长度的函数,但是对于一些初学者来说,如果不看手册,也许不太清楚其中的区别.下面通过例子,讲解这两者之间的区别. $str='中文a字1符'; ec ...

  2. NodeJS+Express+Socket.io的一个简单例子

    关键字:NodeJS,Express,Socket.io. OS:Windows 8.1 with update pro. 1.安装NodeJS:http://nodejs.org/. 2.初始化一个 ...

  3. 【TLD】标签库描述符

    tld是taglib description 的缩写 定制标签拼图中的最后一块是TLD(标签库描述符)文件.创建的每个标签都必须在一个TLD文件中声明,而且这一文件还必须连同标签的Java处理器类一起 ...

  4. .net faq

    http://www.indiabix.com/technical/dotnet/ http://www.codeproject.com/Articles/637480/Csharp-and-ASP- ...

  5. RandomAccessFile类的使用(随机读取java中的文件)

    package coreJava; import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; ...

  6. [转载]C#字符串加密和解密

    using System.Security.Cryptography; using System.IO; //默认密钥向量 private static byte[] Keys = { 0x12, 0 ...

  7. jar包中的类如何读取包内和包外的配置文件

    最近将代码打包成jar包,关于如何处理读取配置文件的问题特此记录一下. out.properties a.jar -com -a.class -in.properties 如上所示,out.prope ...

  8. 网络编程(一) 利用NSURLSession发送GET POST请求

    Xcode 7.0后,http链接不能直接访问(https可以),需要在Info.plist增加下面一项才能正确访问. 使用NSURLSession进行网络请求的流程: 1.构造NSURL 2.构造N ...

  9. C内存管理

    一般而言,分配给进程的内存有四个概念上不同的区域,分别为:代码段.数据段.堆和栈,其中数据段又可以细分为初始化为非零的数据和初始化为零的数据.如下图所示: 1.栈区(stack)— 由编译器自动分配释 ...

  10. Android 多屏幕适配

    问题: 测试时,发现应用在不同的显示器上显示效果不同(部分文本不能显示完全),自然想到屏幕适配的问题. 按照思路整理如下: (一) 几个概念 1, Screen size 屏幕的尺寸,即对角线长度(单 ...