继承:
           从一般到特殊的关系,是一种拓展关系,子类对象是父类的一种,也可称为”is a“的关系
泛化:
        把子类里的共性抽取到父类里的来的过程
特化:
        子类在父类的基础上上定义了自己特有的行为特征的过程
 
格式:
        修饰符 class SubClass extends SuperClass{
    }
 
 SubClass :导出类、继承类、子类
SuperClass:父类、基类、超类、源类
子类SubClass通过extends来继承父类SuperClass
 
继承是通过extends来实现的
 
继承提高了代码的复用性,提高了软件的开发效率
 
让类与类之间产生关系,这个是实现多态的前提 
 
子类对象访问实例成员的时候,是现在子类里找,要是找不到再去父类找
 
每个类有且只有一个直接父类
 
一个类没有显示的继承其他的一个类时候,默认的直接父类就是object类
一旦一个类显示的继承了其他的一个类的时候,此时默认的直接父类object就会被取消
 
Java只支持单继承不支持多继承
 
父类里面私有的东西,子类不能继承
 
在继承操作中,对于子类的对象实例化,子类对象在实例化之前必须首先调用父类中的构造方法之后在调用自身的构造方法子
    证明:
 class Super{
public Super(){
System.out.println("我是父类super");
}
}
class Sub extends Super{
public Sub(){
System.out.println("我是子类sub");
}
}
public class InstanceDemo {
public static void main(String[] args) {
new Sub();
/**
* 我是父类super
* 我是子类sub
*
* 先打印的是父类里面的在打印的子类里面
* 从这个可以看出是先调用父类的构造方法创建父类对象再来调用子类里面的构造方法
*
*/
}
}
子类对象在初始化之前会默认调用父类无参的构造方法,但是一旦子类显示的调用了父类其他的构造方法,那么默认调用的构造方法将会被取消
 
 
方法的重写(Override):
                当父类的某个方法不适合于子类本身的特征行为时就当重写父类中应当改变的方法
方法重写应遵循的原则:
    方法签名(方法名+参数列表)必须相同
    子类方法的返回值类型比父类方法的返回值类型更小或相等
    子类方法声明抛出的异常应比父类方法申明跑出异常更小或相等,即子类方法不能抛出新的异常类型,子类方法可以同时声明抛出多个父类方法声明抛出异常的子类(RuntimeException例外)
    子类方法的访问权限应比父类方法更大或相等
 
overload 与 override
 
区别点
重载(overload)
重写(override)
1           
判断规则     
参数列表顺序不同、类型不同、个数不同都可以构成重载
    同类中方法名相同,但是方法的参数列表不同,与方法的返回值类型和修饰符无关
  方法签名(方法名+参数列表)必须相同
    子类方法的返回值类型比父类方法的返回值类型更小或相等
    子类方法声明抛出的异常应比父类方法申明跑出异常更小或相等
    子类方法的访问权限应比父类方法更大或相等
2
权限
无权限要求
被重写的方法不能拥有比父类更严格的权限
3
范围
发生在一个类中
发生在继承关系中
4
多态
编译时多态
运行时多态
 
 
 
 
 
 
 
 
 
构造方法不能被重写
 
super关键字
    表示父类对象的默认引用
    如果子类要调用父类被覆盖的实例方法,可用super作为调用者调用父类被覆盖的实例方法
    使用super调用父类方法
    使用super调用父类的构造方法
对super的调用必须是构造器中的第一个语句
this不能出现在static修饰的方法中,super也一样不能出现在static修饰的方法中
因为static修饰的方法属于类,即调用者是类   
 
this与super     
 
区    别
              
this
super
1          
使   用
调用本类中的字段或方法
从子类调用调用父类的字段或方法
2
构   造
可以调用本类中的构造方法,且有一个构造方法要作为出口
从子类调用父类的构造方法,不管子类如何安排最终一定会去调用,默认调用的父类中无参的构造方法
3
要   求
调用自身构造方法时放在构造方法首行
调用父类构造方法时放在子类构造方法首行
4
特   殊
表示当前对象
表示父类对象
 
 
 
 
 
 
 
 
 
ps:使用super()和this()在同一个构造方法中是不可能同时显示出现的

面向对象三大特征之继承(extends)——Java笔记(六)的更多相关文章

  1. JAVA 面向对象 三大特征:继承

    什么是继承 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可. 多个类可以称为子类,单独这个类称为父类.超类或者基类. 子类可以直接访 ...

  2. 面向对象编程(九)——面向对象三大特性之继承以及重写、Object类的介绍

    面向对象三大特性 面向对象三大特征:继承 :封装/隐藏 :多态(为了适应需求的多种变化,使代码变得更加通用!) 封装:主要实现了隐藏细节,对用户提供访问接口,无需关心方法的具体实现. 继承:很好的实现 ...

  3. Java学习:面向对象三大特征:封装、继承、多态之封装性

    面向对象三大特征:封装.继承.多态. 封装性在Java当中的体现: 方法就是一种封装 关键字private也是一种封装 封装就是将一些细节信息隐藏起来,对于外界不可见. 问题描述:定义Person的年 ...

  4. Java的OOP三大特征之一——继承

    Java的OOP三大特征之一——继承 子类继承父类的特征和行为(属性和方法),使得子类具有父类的各种属性和方法.或子类从父类继承方法,使得子类具有父类相同的行为. 特点:在继承关系中,父类更通用.子类 ...

  5. Java中面向对象三大特征

    也就是说在这里"人"是多态的, 在不同的形态时,特征行为是不一样的, 这里的"人", 同时有两种形态,一种是教师形态,一种是学生形态,所对应的特征行为分别是&q ...

  6. Java基础-面向对象第二特征之继承(Inheritance)

    Java基础-面向对象第二特征之继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承的概述 在现实生活中,继承一般指的是子女继承父辈的财产.在程序 ...

  7. OOP面向对象 三大特征 继承封装多态

    OOP面向对象 ----三大特征 继承封装多态 面向对象(Object Oriented,OO)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界面.应用结构 ...

  8. Java学习:面向对象三大特征:封装性、继承性、多态性之多态性。

    面向对象三大特征:封装性.继承性.多态性之多态性. extends继承或者implemens实现,是多态性的前提. 例如:小菜是一个学生,但同时也是一个人.小菜是一个对象,这个对象既有学生形态,也有人 ...

  9. Python面向对象初始(三大特征,多态,继承,封装)

    Python面向对象的初始 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程序的 ...

随机推荐

  1. 解决Centos 7 dhcp服务器-no subnet declaration for start (no IPV4 addresses.)

    上面的配置是hyper-v 安装的 centos 7.0 安装dhcp 服务器的方法是 yum install dhcpd 在安装和配置好后,运行的时候出现错误 错误提示如下: no subnet d ...

  2. enumerateObjectsUsingBlock、enumerateObjectsWithOptions、enumerateObjectsAtIndexes、makeObjectsPerfor使用

    OC至 NSArray它提供了一个方便的遍历block,以下具体说明 第一.enumerateObjectsUsingBlock NSArray *array=@[@"aa",@& ...

  3. win7/win8通过媒体流(DLNA技术)共享音乐照片和视频

    http://www.jb51.net/os/windows/79421.html 工具/原料 Windows 7/8/10家庭高级版以上版本 家庭WiFi局域网(无须连接互联网) 支持DLNA的手机 ...

  4. redmine使用汇总redmine软件工程过程

    1.强制性当一个新的问题:轨道.议题.叙述性说明.状态.优先.分配给.父任务(假设没有可以不填,假设有请务必填写).开始日期.预计时间.党羽,请注意,这时候一定不要填写完成时间 2.如果你想在实时登记 ...

  5. QEMU-KVM自己主动创建虚拟机,以指定IP构造

    正在使用qemu不能指定创建虚拟机的过程IP住址,然而,在实际应用中,我们需要有一台虚拟机IP住址,不是人为的虚拟机操作系统配置. 于qemu虚拟机技术文档(http://qemu.weilnetz. ...

  6. jQuery插件主要有两种扩展方式

    jQuery插件主要有两种扩展方式: 扩展全局函数方式. 扩展对象方法方式. 扩展全局函数方式 扩展全局函数方式定义的插件,即类级别插件,可以通过jQuery.extend()来进行定义.定义格式为: ...

  7. Stack-based buffer overflow in acdb audio driver (CVE-2013-2597)

    /* 本文章由 莫灰灰 编写,转载请注明出处. 作者:莫灰灰    邮箱: minzhenfei@163.com */ 1. 漏洞描写叙述 音频驱动acdb提供了一个ioctl的系统接口让应用层调用, ...

  8. android 视频通话开启呼叫等待后,来第三方的视频通话,接通后通话时间一直显示为0,过几秒之后视频通话自己主动挂断

    开启通话设置视频通话的"来电等待"; 步骤1:測试机和配合机A处于视频通话过程中; 步骤2:配合机B向測试机呼出视频电话; 步骤3:測试机接听配合机B的视频来电; 现象:视频通话过 ...

  9. asm 盘头损失,破坏

    BUG 14693394 – ORA-15196: INVALID ASM BLOCK HEADER [KFC.C:26076] [ENDIAN_KFBH] BUG 14758001 – ORA-15 ...

  10. Linux进程管理(-)

    一.进程的类型 能够将执行在Linux系统中的进程分为三种不同的类型: 交互进程:由一个Shell启动的进程.交互进程既能够在前台执行,也能够在后台   执行. 批处理进程:不与特定的终端相关联,提交 ...