继承:把多个类中同样的内容提取出来。定义到一个类中,其它类仅仅须要继承该类。就能够使用该类公开的属性和公开的方法。

 

继承的优点:提高代码的复用性。提高代码的可维护性。让类与类之间产生关系,是多态存在的一个前提。

 

继承的弊端:提高了类与类之间的耦合性。

 

开发的原则:低耦合。高内聚

耦合:类与类之间的关系

内聚:自己单独完毕某件事情的能力。

 

在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中继承关系学习小结的更多相关文章

  1. Java中的equals学习小结

    Java中的equals是十分重要的,和= =要区别开来,现在小结其主要内容,而且要将 = =和 equals列为重要的对比概念来学习 1.声明格式    public  boolean equals ...

  2. C++/Java中继承关系引发的调用关系详解

    C++: 这里引用到了 http://blog.csdn.net/haoel/article/details/1948051/ 中的内容,还请提前阅读陈大神的这篇博客后在阅读本篇. 覆盖,实现多态的基 ...

  3. [转载]Java中继承、装饰者模式和代理模式的区别

    [转载]Java中继承.装饰者模式和代理模式的区别 这是我在学Java Web时穿插学习Java设计模式的笔记 我就不转载原文了,直接指路好了: 装饰者模式和继承的区别: https://blog.c ...

  4. Java中继承,类的高级概念的知识点

    1. 继承含义 在面向对象编程中,可以通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类,这种方式称为继承(inheritance). 2. 继承的优点 A.代码的可重用性 B.子类可以扩 ...

  5. java中继承thread类的其他类的start()方法与run()方法

    java中继承thread或者实现runnable接口的类必须重写run()方法. 如果其执行了start()方法,其实就是启动了线程的run()方法. 注意:如果是实现runnable接口的类是没有 ...

  6. java中继承,子类是否继承父类的构造函数

    java中继承,子类是否继承父类的构造函数 java继承中子类是不会继承父类的构造函数的,只是必须调用(隐式或者显式) 下面来看例子: public class TestExtends { publi ...

  7. Java类继承关系中的初始化顺序

    Java类初始化的顺序经常让人犯迷糊,现在本文尝试着从JVM的角度,对Java非继承和继承关系中类的初始化顺序进行试验,尝试给出JVM角度的解释. 非继承关系中的初始化顺序 对于非继承关系,主类Ini ...

  8. java中继承的关系

    当有父子关系的两个类(继承关系),当子类实例化对象的时候  会默认调用父类的无参构造方法,如果有  super()的话,调用的是父类有参的构造方法! 也就是说 父类必须有 有参构造 没有的话super ...

  9. [转]Java中继承、多态、重载和重写介绍

    什么是多态?它的实现机制是什么呢?重载和重写的区别在那里?这就是这一次我们要回顾的四个十分重要的概念:继承.多态.重载和重写. 继承(inheritance) 简单的说,继承就是在一个现有类型的基础上 ...

随机推荐

  1. cocos2d-x 是怎样渲染的

    要知道 是怎样渲染的:要先选中 就可以 谁知道: c ocos2d-x 是怎样渲染的 ? 每一个CCNODE自己有draw 北京-菜菜: :: draw draw负重渲染 ************** ...

  2. UVA11234 Expressions

    题目的意思实在是读不懂,又是把栈变成队列什么的.. 只是大体的意思就是把后缀表达式变一下.. 抛开意思,事实上就是依据输入建个树,然后倒序输出.. 拿第一个例子说明:大写代表操作符(+ - × /之类 ...

  3. [HTML5] 让IE支持HTML5的方法

    越来越多的站点开始使用 HTML5 标签,但是目前的情况是还有很多人在使用IE6.IE7.IE8.为了让所有浏览者都可以正常的访问,解决方案有下面两个: 1.为网站创建多套模板,通过程序对User-A ...

  4. Python基本数据类型之数字int

    数字 int(x, base=None) 将x转换为一个整数.base为按照多少进制进行转换 float(x) 将x转换到一个浮点数. complex(x) 将x转换到一个复数,实数部分为 x,虚数部 ...

  5. Socket server

    Socket server的使用方法(精华部分),仅供自用. class MyServer(socketserver.BaseRequestHandler): def handle(self): wh ...

  6. Python:Matplotlib 画曲线和柱状图(Code)

    原文链接:http://blog.csdn.net/ikerpeng/article/details/20523679 参考资料:http://matplotlib.org/gallery.html ...

  7. mach-o格式分析

    0x00 摘要 人生无根蒂,飘如陌上尘. 分散逐风转,此已非常身. — 陶渊明 <杂诗> mach-o格式是OS X系统上的可执行文件格式,类似于windows的PE与linux的ELF, ...

  8. HTML 引入 CSS、JS 的三种方式

    描述部分按 CSS 来的,其实 JavaScript 也一样,具体区别看代码 外部样式表 当样式需要被应用到很多页面的时候,外部样式表将是理想的选择.使用外部样式表,你就可以通过更改一个文件来改变整个 ...

  9. 怎么用js或jq点击展开,出现隐藏的DIV,点击收起DIV又隐藏起来.

    方法一:1 <script type="text/javascript"> $(function() { $("#toggle").click(fu ...

  10. IIS访问php页面问题,报告404错误

    IIS访问php页面出现问题,所有php页面找不到,显示404页面,html页面可以正常访问. 搜索结果: 方案1: 打开WEB服务扩展,把“所有未知ISAPI扩展”设为允许! 方案2: PHP没有完 ...