java中继承关系学习小结
继承:把多个类中同样的内容提取出来。定义到一个类中,其它类仅仅须要继承该类。就能够使用该类公开的属性和公开的方法。
继承的优点:提高代码的复用性。提高代码的可维护性。让类与类之间产生关系,是多态存在的一个前提。
继承的弊端:提高了类与类之间的耦合性。
开发的原则:低耦合。高内聚
耦合:类与类之间的关系
内聚:自己单独完毕某件事情的能力。
在Java中仅仅同意单继承。一个类假设没有显示的继承其它类。则该类的默认父类为Object类。
Object类是全部类的父类。
Java支持多层继承。
父类的公开方法能够訪问父类的私有方法和私有成员。
子类仅仅能继承父类全部非私有的成员(成员方法和成员变量)。
子类不能继承父类的构造方法,可是能够通过super()keyword去訪问父类的构造方法。
不要为了部分功能而去继承。
什么时候考虑採用继承?
继承体现的是is-a的关系。
採用假设法:有两个类A和B,假设A是B的一种详细体现,或者B是A的一种详细体现时。就能够採用继承。
继承中。成员变量的关系:子父类中各定义了一个同名成员变量时,子类中的成员变量会覆盖父类中的成员变量。在子类中能够通过super来调用父类中的同名变量。
在子类方法中訪问一个变量的查找顺序:
a:在子类的相应的局部范围内查找。有就是用
b:在子类的成员范围内查找,有就是用。
c:在父类的成员范围内查找,有就是用。
假设都没有找到。则报错。
在一个类中,方法与方法之间是平级关系,方法之间不能訪问对方的局部变量。
super和this的差别:
this代表本类对象的引用
super代表父类存储空间的标示,相当于父类的引用。
this和super都能够訪问构造方法、成员变量和成员方法。
继承间构造方法之间的关系。
子类全部的构造方法默认都会去訪问父类的无參构造方法。
由于子类会继承父类中的数据,可能会用到父类中的数据,所以在子类初始化之前,一定要完毕父类的初始化。
每个构造方法的第一条语句默认都是:super
怎样父类中没有构造方法,该怎么办呢?
子类通过super去显示调用父类其它的带參的构造方法
子类通过this去调用本类的其它构造方法。本类其它构造也必须首先訪问了父类构造
一定要注意:
super(…)或者this(….)必须出如今第一条语句上。否则,就会有父类数据的多次初始化
继承间成员方法的关系
子父类中各定义了一个同名成员方法时,子类中的成员方法会覆盖父类中的成员方法。
在子类中能够通过super来调用父类中的同名方法。
通过子类对象去訪问一个方法的查找顺序:
a:在子类中查找,假设找到就调用
b:在父类中查找。假设找到就调用
假设都没有找到。就报错。不会查找父类的父类……
java中继承关系学习小结的更多相关文章
- Java中的equals学习小结
Java中的equals是十分重要的,和= =要区别开来,现在小结其主要内容,而且要将 = =和 equals列为重要的对比概念来学习 1.声明格式 public boolean equals ...
- C++/Java中继承关系引发的调用关系详解
C++: 这里引用到了 http://blog.csdn.net/haoel/article/details/1948051/ 中的内容,还请提前阅读陈大神的这篇博客后在阅读本篇. 覆盖,实现多态的基 ...
- [转载]Java中继承、装饰者模式和代理模式的区别
[转载]Java中继承.装饰者模式和代理模式的区别 这是我在学Java Web时穿插学习Java设计模式的笔记 我就不转载原文了,直接指路好了: 装饰者模式和继承的区别: https://blog.c ...
- Java中继承,类的高级概念的知识点
1. 继承含义 在面向对象编程中,可以通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类,这种方式称为继承(inheritance). 2. 继承的优点 A.代码的可重用性 B.子类可以扩 ...
- java中继承thread类的其他类的start()方法与run()方法
java中继承thread或者实现runnable接口的类必须重写run()方法. 如果其执行了start()方法,其实就是启动了线程的run()方法. 注意:如果是实现runnable接口的类是没有 ...
- java中继承,子类是否继承父类的构造函数
java中继承,子类是否继承父类的构造函数 java继承中子类是不会继承父类的构造函数的,只是必须调用(隐式或者显式) 下面来看例子: public class TestExtends { publi ...
- Java类继承关系中的初始化顺序
Java类初始化的顺序经常让人犯迷糊,现在本文尝试着从JVM的角度,对Java非继承和继承关系中类的初始化顺序进行试验,尝试给出JVM角度的解释. 非继承关系中的初始化顺序 对于非继承关系,主类Ini ...
- java中继承的关系
当有父子关系的两个类(继承关系),当子类实例化对象的时候 会默认调用父类的无参构造方法,如果有 super()的话,调用的是父类有参的构造方法! 也就是说 父类必须有 有参构造 没有的话super ...
- [转]Java中继承、多态、重载和重写介绍
什么是多态?它的实现机制是什么呢?重载和重写的区别在那里?这就是这一次我们要回顾的四个十分重要的概念:继承.多态.重载和重写. 继承(inheritance) 简单的说,继承就是在一个现有类型的基础上 ...
随机推荐
- Java深入 - Filter过滤器
Java的1.3開始,对servlet2.3规范中增加了过滤器的支持.过滤器可以让我们对目标资源的请求和响应进行截取. 一些filter的特性: 1. Filter是Servlet规范的规定,须要Se ...
- luogu1072 Hankson的趣味题
题目大意 给出数a0, a1, b0, b1,求满足gcd(a0, x)=a1, lcm(b0, x)=b1的x的个数 解法一 枚举b1的因数,看看是否满足上述条件. 怎样枚举因数 试除法.对于1~s ...
- Android的编译环境--Build系统【转】
本文转载自:http://blog.csdn.net/kitty_landon/article/details/60764232 Android是一个庞大的系统,包含太多的模块,各种模块的类型也有10 ...
- hdoj--1533--Going Home(最小费用流)
Going Home Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- Oracle 10G 中的"回收站"
在Oracle 10g数据库中,引入了一个回收站(Recycle Bin)的数据库对象. 回收站,从原理上来说就是一个数据字典表,放置用户Drop掉的数据库对象信息.用户进行Drop操作的对象并没有被 ...
- EOJ 1114 素数环
题意 一个由自然数 1…n (n≤18) 素数环就是如下图所示,环上任意两个节点上数值之和为素数. 1 / \ 4 2 \ / 3 Input 输入只有一个数 n,表示你需要建立一个 1… ...
- C# 数组动态添加新元素的 方法
经常在开发中 会对字符串 进行split 拆分操作.. 得到数组后再去做相应的事情! 但有时候,需求决定了 数组的长度 不是固定的, 而C# 数组 是不允许动态添加新的元素的.. 这事情让我也纠结了 ...
- uirecorder录制脚本
安装步骤不再描述. 将手机通过数据线连接到mac 然后输入启动macaca的命令: macaca server --port 4444 --verbose & 在输入 命令:uirecorde ...
- 在YII2中使用redis
一.安装YII2的redis扩展 composer require --prefer-dist yiisoft/yii2-redis 二. 配置basic/config/web.php 在compon ...
- 【Five-Minute Share】数据库内存分配设置
对于数据库分配的内存,经常会看到的一条准则是:将服务器75-80%的内存分配给数据库.这是一条比较常见的准则,但并不是绝对的.首先,我们需要保障操作系统运行本身所需的充足内存后,才能去考虑数据库所分配 ...