java 继承作用_java三大特性之继承
继承(extends):
让类与类之间产生关系,子父类的关系
继承的好处与弊端:
好处:
提高代码的复用性
提高了代码的维护性
让类与类之间产生关系,是多态的前提
弊端:
类的耦合性增加
开发的原则是:
1、高内聚,低耦合
2、耦合:类与类的联系
3、内聚:就是自己完成某件事情的能力
继承的特点(掌握):
Java只支持单继承,子类只能有一个父类。
注:但是java中的接口功能支持多实现
Java支持多层继承(爷-父-子)
java中类的继承特点:
如果想看这个体系的所有功能用最底层的类创建对象
如果想看共性功能,看最顶层的类
继承的注意事项(掌握)
子类只能继承父类的非私有的成员(成员变量和成员方法)
子类不能继承父类的构造器,但是可以通过super 关键字调用父类的构造方法
不要为了部分功能而去强行继承
适合使用继承的环境:
当两者体现的是一种 is-a 的关系。
例如:
人-->男人
食物-->水果-->苹果-->酸苹果
this 和super的区别:
this代表当前对象的引用,谁来调用我,我就代表谁
super代表父类对象的引用。
两者使用区别
调用成员变量
this调用本类的成员变量,也可以调用父类的成员变量
super调用父类的成员变量
调用构造方法
this调用本类的构造方法
super调用父类的构造方法
调用成员方法
this.成员方法 调用本类的成员方法,也可以调用父类的成员方法
super.成员方法 调用父类的成员方法
继承中构造方法的关系(掌握)
子类所有的构造方法都会默认访问父类的构造方法。
原因:
子类继承父类的数据,可能会使用父类的数据。
子类初始化前会先完成父类的初始化
每个构造方法的第一条语句默认都是:super();
Object类是最顶层的类(Everything is Object)万物皆为对象
继承中构造方法的注意事项(掌握)
父类没有构造方法时,子类怎么办?
super解决
this解决
注意:super(...)或者this(...)必须出现在构造方法的第一条语句上。
方法的重写的注意事项(掌握)
注意以下方法不会重写
1、静态方法不会重写 ,父类为静态,子类只能为静态,否则编译错误
2、final 修饰方法 否则编译错误
3、私有方法不会重写
4.子类重写父类方法时,访问权限不能更低最好写成一致。
5.子类重写父类的方法时,最好声明一模一样。
* Override和Overload的区别?Overload能改变返回值类型吗?
* overload可以改变返回值类型,只看参数列表
* 方法重写:子类中出现了和父类中方法声明一模一样的方法。与返回值类型有关,返回值是一致(或者是子父类)的
* 方法重载:本类中出现的方法名一样,参数列表不同的方法。与返回值类型无关。
* 子类对象调用方法的时候:
* 先找子类本身,再找父类。
final关键字(一把手术刀)
特点:
修饰类:类不能被继承
修饰变量:变量编程常量,只能初始赋值一次
修饰方法:不能被重写
final修饰变量的初始化时机:
显示初始化
在对象构造完毕前即可。
final 表示最终的。
不能修饰构造方法
修饰类,表示该类不能被继承.比喻成一把极其锋利的手术刀,将父类阉割
修饰方法,表示该方法不能被重写
修饰属性,表示常量,值一旦确定不可改变。
final 修饰的方法不可以被覆盖,但父类中没有被 final 修饰方法,子类覆盖后可以加 final。
class Fu {
// final 修饰的方法,不可以被覆盖,但可以继承使用
public final void method1(){}
public void method2(){}
}
class Zi extends Fu {
//重写 method2 方法
public final void method2(){}
}
java 继承作用_java三大特性之继承相关推荐
- div不继承父类样式_Java三大特性之继承
继承的概念: 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有 ...
- java三大特性 继承_java基础(二)-----java的三大特性之继承
在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...
- java 集成_java提高篇(二)-----理解java的三大特性之继承
在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...
- Java基础篇:封装、继承、多态三大特性
目录: 一.Java三大特性之:封装 二.Java三大特性之:继承 三.Java三大特性之:多态 一.Java三大特性之:封装 1.什么是封装: 封装,就是将数据和基于数据的操作封装在一起,数据被保护 ...
- Java 面向对象编程的三大特性——封装、继承、多态
一.类和对象 1. 首先,什么是对象呢? 对象简单的来说就是一个实物,比如一部 iPhone X 手机,它就是对象.它的屏幕.内存等就是它的属性. 手机能够打电话,发短信,这个功能就是它的方法. 2. ...
- 【转】java提高篇(二)-----理解java的三大特性之继承
[转]java提高篇(二)-----理解java的三大特性之继承 原文地址:http://www.cnblogs.com/chenssy/p/3354884.html 在<Think in ja ...
- Java提高篇 —— Java三大特性之继承
一.前言 在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事 ...
- Day55-每日一道Java面试题-Java 面向对象编程三大特性: 封装 继承 多态
Java 面向对象编程三大特性: 封装 继承 多态 封装 封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问.但是如果一个类没有 ...
- 大数据必学Java基础(四十):面向对象三大特性之一继承(Inheritance)
文章目录 面向对象三大特性之一继承(Inheritance) 一.列举案例说明 1.类是对对象的抽象
最新文章
- mysql是面向对象的语言吗_php一种面向对象的语言,那么什么是面向对象呢?
- 我是怎么通过技术白手起家创业的。
- BugKu:cookies 欺骗
- 栈和队列应用之数制转换
- “7th-place-solution-microsoft-malware-prediction”——kaggle微软恶意代码检测比赛第七名代码
- 为什么kafka使用磁盘而不是内存
- 我在攻读计算机视觉和机器学习硕士学位时学到了什么
- win7开机提示服务器正在运行,科技常识:win7电脑启动ie浏览器提示服务器正在运行的处理方法...
- 向内存中连续存入数据_内存节省到极致!Redis中这个数据结构,值得每个程序员了解...
- javascript的DOM、BOM操作
- 【招聘内推】阿里高德地图招聘应用算法专家(P7,含推荐算法方向)
- ubuntu 11.10 下network proxy 的设置问题
- MIT 线性代数 Linear Algebra 25: 对称矩阵的特征值特征向量,正定矩阵
- 18、TWS和IB中的错误处理信息
- 2017年c语言试题,2017年计算机二级C语言试题
- 怎么写脚本实现自动输入密码
- 小程序input聚焦事件_微信小程序input失焦异常
- 5类6类7类网线对比_超6类7类8类网线进来挨打 6类线全面测评 网速和传输速率测试...
- 江苏2021高考成绩查询全省排名,江苏省高考排名对应大学-江苏考生位次查询(2021年参考)...
- 阿里云 1H2G T5实例 与 腾讯云 1H2G 标准2实例 测试对比
热门文章
- Git 忽略编译后文件
- smbus协议的command_SMBus总线概述
- python进程监控 supervisor_使用Python的Supervisor进行进程监控以及自动启动
- springboot中文语音识别_【记录】语音识别软件包、代码示例、数据集汇集
- java 加密 数字_java 加密数字签名
- python编辑邮件格式_python发送邮件模板
- 国嵌c语言深度,国嵌C语言3部全
- 【LeetCode笔记】剑指 Offer 55 - II. 平衡二叉树(递归、二叉树)
- 【LeetCode笔记】剑指 Offer 06. 从尾到头打印链表(Java、翻转链表)
- ios 捕抓crash_ios crash的原因与抓取crash日志的方法