继承:
从一般到特殊的关系,是一种拓展关系,子类对象是父类的一种,也可称为”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()在同一个构造方法中是不可能同时显示出现的

转载于:https://www.cnblogs.com/Essence/p/3967426.html

面向对象三大特征之继承(extends)——Java笔记(六)相关推荐

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

    1.特点 1)使用extends关键字继承 2)java中的类只支持单继承,不支持多继承,但是支持多重继承 3)子类只能继承父类的非私有成员,不能继承父类的构造方法,但是可以通过super进行调用一个 ...

  2. Java基础(面向对象三大特征)

    面向对象三大特征 封装 继承 多态 1.封装 封装,顾名思义就是将一个东西通过层层包装裹起来,例如c语言中的结构体,将属性和方法封装在一起.更加具体的,发达国家对发展中国家进行技术垄断就是通过将高科技 ...

  3. c++局部对象是什么_面向对象三大特征: 封装

    今日内容 面向对象概述 类和对象的关系 面向对象内存图 private.this关键字和封装 面向对象之构造方法 面向对象三大特征 封装 继承 多态 01. 面向过程和面向对象思想概述 什么是面向过程 ...

  4. java的知识点11——面向对象的三大特征之一继承、instanceof 运算符、方法的重写override、Object类基本特性、toString方法

    面向对象的三大特征:继承.封装.多态 继承的实现 继承让我们更加容易实现类的扩展.子类是父类的扩展 使用extends实现继承 package cn.sxt;public class Test {pu ...

  5. Java面向对象三大特征---继承

    系列文章目录 Java面向对象三大特征-多态 Java面向对象三大特征-封装 文章目录 系列文章目录 前言 一.概念 二.举例说明 三.语句格式 三.为何要使用继承 四.super与this关键字 五 ...

  6. Java面向对象三大特征的理解

    面向对象三大特征的理解 初始理解 封装 继承 多态 初始理解 其实这些知识很早就有接触,而且一些概念也牢记于心了.自己叙述面向对象的特征会是这样的: 面向对象的三大特征是封装.继承和多态.封装是对代码 ...

  7. JAVA面向对象三大特征:

    JAVA面向对象三大特征: 1.封装 (英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装.隐藏起来的方法. 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的 ...

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

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

  9. python多态的三种表现形式_python小结----面向对象的三大特征(封装,继承,多态)

    面向对象的三大特征: 封装,继承,多态 面向对象的编程思想核心:高类聚,低耦合–程序的设计模式范畴 封装 什么是封装: 在面向对象编程的思想中,对代码进行高度封装,封装又叫包装 封装就是指将数据或者函 ...

最新文章

  1. 2、jeecg 笔记之 t:dictSelect 或 t:dgCol 自定义字典
  2. SharpDevelop插件系统创建过程全面分析
  3. svn教程----svn简介
  4. org.apache.flink.client.program.ProgramInvocationException: Job failed
  5. shell 判断字符串相等_编程小短文:Bash子字符串还在用==?试试=~性能瞬间飙升100倍...
  6. 优化mysql数据库_MySQL数据库十大优化技巧
  7. 大数据架构师学习方向---加油。
  8. Tomcat历史版本下载
  9. 怎么做QQ、微信等消息气泡
  10. Qt抽奖圆盘(减速效果)
  11. JavaScript权威指南学习笔记(一)
  12. ice服务器能修复吗,系统进不去怎么办?教你利用bootice工具引导修复系统
  13. Java定时任务表达式
  14. JavaScript时间格式化工具函数
  15. 模块化编程(C语言)
  16. Xshell安装教程及Xshell安装程序集组件时出错的解决方法
  17. PGSQL查询今天生日的员工
  18. 剪映导出帧率选多少_视频发朋友圈更清晰的四点小技巧
  19. ae计算机没有该字体,【干货】自己动手,完美解决AE CC 2017/CC 2018/CC 2019字体问题CT generic: not ascii...
  20. 一个女孩写给女孩的话

热门文章

  1. Apollo自动驾驶入门课程第⑦讲 — 规划(上)
  2. 项目总结1:微信扫码自动识别设备类型并跳转到相应的应用下载页面(apk或App Store)之解决方案
  3. ajax get请求成功,成功()函数的AJAX GET请求
  4. mysql配置日志老化配置_mysql配置-日志大小限制和自动删除
  5. CSS中属性个属性值怎么区分,[CSS] 详细解释 @media 属性与 (max
  6. pta输出三角形字符阵列c语言,C语言l|博客园作业11
  7. 深搜DFS\广搜BFS 图初步入门
  8. Git(9)-diff
  9. 《集体智慧编程》笔记(2 / 12):提供推荐
  10. 《Python Cookbook 3rd》笔记(1.11):命名切片