继承:
           从一般到特殊的关系,是一种拓展关系,子类对象是父类的一种,也可称为”is a“的关系
泛化:
        把子类里的共性抽取到父类里的来的过程
特化:
        子类在父类的基础上上定义了自己特有的行为特征的过程
 
格式:
        修饰符 class SubClass extends SuperClass{
    }
 
 SubClass :导出类、继承类、子类
SuperClass:父类、基类、超类、源类
子类SubClass通过extends来继承父类SuperClass
 
继承是通过extends来实现的
 
继承提高了代码的复用性,提高了软件的开发效率
 
让类与类之间产生关系,这个是实现多态的前提 
 
子类对象访问实例成员的时候,是现在子类里找,要是找不到再去父类找
 
每个类有且只有一个直接父类
 
一个类没有显示的继承其他的一个类时候,默认的直接父类就是object类
一旦一个类显示的继承了其他的一个类的时候,此时默认的直接父类object就会被取消
 
Java只支持单继承不支持多继承
 
父类里面私有的东西,子类不能继承
 
在继承操作中,对于子类的对象实例化,子类对象在实例化之前必须首先调用父类中的构造方法之后在调用自身的构造方法子
    证明:
  1. class Super{
  2. public Super(){
  3. System.out.println("我是父类super");
  4. }
  5. }
  6. class Sub extends Super{
  7. public Sub(){
  8. System.out.println("我是子类sub");
  9. }
  10. }
  11. public class InstanceDemo {
  12. public static void main(String[] args) {
  13. new Sub();
  14. /**
  15. * 我是父类super
  16. * 我是子类sub
  17. *
  18. * 先打印的是父类里面的在打印的子类里面
  19. * 从这个可以看出是先调用父类的构造方法创建父类对象再来调用子类里面的构造方法
  20. *
  21. */
  22. }
  23. }
子类对象在初始化之前会默认调用父类无参的构造方法,但是一旦子类显示的调用了父类其他的构造方法,那么默认调用的构造方法将会被取消
 
 
方法的重写(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. cheese desktop内容

    #!/usr/bin/env xdg-open [Desktop Entry] Encoding=UTF- Version=1.0 Type=Application Terminal=false Na ...

  2. 简单的反射 把datatable 转换成list对象

    /// <summary> /// 把datatable 转换成list对象 /// </summary> /// <typeparam name="T&quo ...

  3. Tomcat启动错误,端口占用

    错误信息: Several ports (8080, 8009) required by Tomcat v7.0 Server at localhost are already in use. The ...

  4. DapperLambda发布

    DapperLambda发布 引言:因为接触过多个ORM,但使用的时候都遇到了各自的一些不够理想的地方,从最早开始开始公司自己分装的,到后面用EF,以及Dapper和DapperExtensions ...

  5. CAS实现SSO单点登录原理(转)

    1.      CAS 简介 1.1.  What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的.开源的项目,旨 ...

  6. android看不见main函数怎么办?程序异常了,能够不提示“xxx软件停止执行”吗?

    今天遇到了这个问题,分享一下解决方式. android没有main 函数,自然也就不存在main里面加入异常处理来实现全局异常捕获的方案.那android程序有全局异常补货的解决方式吗? 答案是有的: ...

  7. Cocos2d-x 3.0final 终结者系列教程01-无论是从cocos2d-x2.x升级到版本cocos2d-x3.x

    诡谲的江湖,易变. 花花世界,车来人往. 最终确定.安家,将Cocos2d-x3.0final相关技术精加工的版本.并推出了博客文章, 不为他人,只为自己. 学习交流QQ群:301954471 --- ...

  8. mac 下有些工具 app 推荐

    打开推荐报价mac在工具app Evernote的 Evernote的贬值,课堂笔记软件,其主要功能是记录笔记,假设你想,它可用于使todo list, 甚至gtd, 或收集的知识归纳 Doit.im ...

  9. Apple Watch 1.0 开发介绍 1.3 简介 WatchKit App 架构

    WatchKit app和WatchKit extension一起实现了app的界面.当用户在Apple Watch中操作时,WatchKit app从storyboards中选择合适的场景.比如,如 ...

  10. 在前端一定要了解的HTML,CSS知识

    盒子模型 每个盒子都有4个属性:内容(content).填充(padding).边框(border).边界(margin) 每个属性都有四个部分:上.右.下.左 块级元素 内联元素 块级元素(bloc ...