△先默认初始化,在显示初始化,在构造函数初始化
△继承的弊端:代码的耦合性增加了.
△子类不能继承父类的构造方法.
△子类会拥有父类的私有成员变量,但是必须通过get,set方法访问.
△super不是一个对象的引用,不能将super赋给另一个对象变量,它只是一个指示编译器调用超类方法的特殊关键字.
△如果子类没有显示的调用超类的构造器,则将自动的调用超类默认的构造器,如果超类没有不带参数的构造器,并且在子类的构造器中也没有显式的调用其他构造器,将会编译报告错误.
△顺序:
父类的静态成员赋值和静态块,默认初始化 (静态块和静态成员的顺序为,谁在前面谁先执行(在不出错的情况下)(父.class先加载,子.class再加载)
子类的静态成员和静态块 ,默认初始化
跳转到父类的构造方法,再跳到构造代码块. 
父类的成员赋值和初始化块 
父类的构造方法中的其它语句 
子类的成员赋值和初始化块 
子类的构造方法中的其它语句 
父类静态代码块--子类静态代码块--父类构造代码块--父类构造方法--子类构造代码块--子类的构造方法.
△子类中的有参构造函数和空参构造函数都默认为访问父类的空参构造函数.子类重写父类方法的时候,访问权限不能更低.父类静态方法只能在子类中由子类所覆盖.
 方法重载:本类中出现的方法名一样,参数列表不同的方法,与返回值无关
 方法重写:子类重写父类的方法,与返回值有关,必须相同或者是子父类
△final所修饰的变量要不然直接显示初始化,要不然采用构造函数初始化和构造代码快初始化.
△动态绑定:在运行的时候确定所需要调用的方法.虚拟机一定调用与x引用对象实际类型最合适的那个类的方法.静态绑定当且仅当方法关键字为private,static,final的时候采用,编译器将可以准确的知道应该调用哪个方法.
△父类引用的成员变量是父类的成员变量
父类引用使用子类方法:编译看左边,运行看右边,动态绑定.子类方法中的父类变量仍然要看子类有没有重写该变量,子类方法的变量隐式参数是this.
 子父类的静态方法:编译看左边,运行也看左边.
△子类重写父类的方法的时候,有一种特殊的情况,即super.show().此时,调用的是父类的show方法,而不是覆盖重写后的子类的show方法.因为,super指向的是父类空间.
△Java7新特性:Objects类.
  static boolean equals(Object a,Object b):判断两个对象是否相等,使用的是对象a的equals方法.
  static int hash(Object...objects):返回一个散列码,由提供的所有对象的散列码组合得到.(很实用,可以在覆盖equals和hashcode方法的时候根据equals用到的成员变量便捷覆盖hashcode方法).也可以用这个方法调用Objects.hash(7)便捷获得基本数据类型的hashcode.
△对于equals方法的覆盖,应该遵循两个原则:
  • 如果子类拥有自己的相等概念,那么对称性需求将强制采用getclass进行检测.
  • 如果由超类决定相等的概念,可以使用instanceof并对超类的类名进行检测,这样可以在不同的子类之间进行相等的比较,并且将父类的equals方法声明为final.
△getClass是指运行时类,因此父类引用指向子类对象的时候,所得的getclass是子类的class对象
△Instance of 判断引用是否指向后面的数据类型..
△父类属性存储方式是在堆中的子类对象里面分配空间

一个对象的实例化过程:
     Person p=new Person();
     1.jvm会读取指定路径下的Person.class文件,并加载进内存,并会加载Person的父类
     2.在堆内存中开辟空间,分配内存地址。
     3.并且在对象空间中,对对象的属性进行默认初始化。
     4.调用相应的构造函数进行初始化。先进子类构造函数,在子类构造函数中,第一行会调用父类构造函数进行初始化,父类初始化完毕后(先显示初始化在构造函数初始化),再对子类属性进行显示初始化,然后调用子类构造函数进行特定的初始化。
     5.将地址赋给相应的变量。
△对于父类的方法覆盖时,方法签名必须相同,返回值也必须相同或者为子类也可以.
△对象引用的类型转换:1).只能在继承层次内进行类型转换2).在超类转化为子类之前应该使用instanceOf进行检查

JavaSE复习_3 继承的更多相关文章

  1. JavaSE复习日记 : 继承关系和super关键字以及继承关系中方法的覆写

    /* * 类的继承和super关键字 * * 软件开发的三大目的: * 可拓展性; * 可维护性; * 可重用性; * * 这里单说下可重用性这一项: * 为了代码复用,复用方式有: * 函数的调用复 ...

  2. javaSE复习之——线程

    线程其实就是程序执行的一条路径,一个进程中可以包含多条线程,多线程并发执行可以提高程序效率,可以同使完成多项任务 多线程的应用场景 迅雷多线程一起下载 服务器同时处理多个客户请求 多线程原理(单核CP ...

  3. JavaSE复习(一)继承多态与常用API

    继承与多态 在父子类的继承关系当中,如果成员变量重名,则创建子类对象时,访问有两种方式: 直接通过子类对象访问成员变量:等号左边是谁,就优先用谁,没有则向上找 间接通过成员方法访问成员变量:该方法属于 ...

  4. javaSE复习总结

    之前匆匆忙忙学完了java,后来又接着学习ee,然而,越是想要快一点最后反而会更慢一点.因为匆忙间 我几乎什么都没学会.在后面的学习中实在非常吃力.就把javase 的视频大部分又重新看了一遍.真的收 ...

  5. JavaSE复习总结之集合(Collection)

    Java早期版本只给集合类库提供了很少的一组类,但是随着Java版本的升级,Java集合类库越来越充实.集合类库里面存放的,是各式各样的数据容器,我们基本都学过数据结构这门课,数据结构所讲的就是ADT ...

  6. JavaSE复习_8 泛型程序设计

    今晚看了core Java的泛型部分,万万没有想到,当时看培训班视频入门的一带而过的泛型,有这样多的细节,整理了一下书里面提到的一些自认为的重点,方便以后观阅.由于是复习,一些基础知识跳过. △泛型类 ...

  7. JavaSE复习日记 : 接口

    /* * 接口 * 引用数据类型: * 类,接口,数组; * * 接口是一种引用数据类型,可以看作是一个特殊的类,它存在的目的是为了解决没有多重继承引起的功能弱的问题而设计的,一个类只能有一个父类,但 ...

  8. JavaSE复习日记 : 抽象类

    /* * 抽象类 * 抽象: * 面向对象的三大核心思想; * 封装: 封装,ppp是封装的一部分 * 继承; * 多态: 父类的引用指向子类的对象 * 引用: 是指一个引用型变量 * 有哪些变量? ...

  9. JavaSE复习日记 : 算是个小前言吧

    /* * Java也学了好久了,抽个时间整理了一下课堂笔记,也有些是我刚开始学会犯的一些错误.在这里浅谈一下JavaSE的基础内容,对我来说也是一种不错的复习方式. * * 那好,对于初学者来说,学习 ...

随机推荐

  1. 解决php与IIs的冲突

    ISS与apache 服务器的默认端口号为 :80: 在浏览时,无法访问到. 可以将 apache的端口 改变即可: Apache安装好后,在其安装目录下的conf文件夹内会有httpd.conf这样 ...

  2. java面试每日一题13

    题目:有一个分数数列2/1.3/2.5/3.8/5.13/8........求出这个数列的前20项之和.运行结果如下32.660263 public class Page80 { /** * * @p ...

  3. [HTML]background-size可以缩放大小

    转自:http://www.igooda.cn/jsdt/20130827355.html background-size需要两个值,它的类型可以是像素(px).百分比(%)或是auto,还可以是co ...

  4. [Ogre]纹理设置

    MaterialPtr material= MaterialManager::getSingleton().create("name",“ResourcesGroupName”); ...

  5. sprint2(第七天)

    因为GitHub有时候我们更新不上,然后浪费很多时间,所以我们决定几天上传一次,而且有时候我们的功能在做,不一定一天能做完,所以几天做完一个模块再一起上传比较好.昨天的燃尽图有点错,有个功能做了没有把 ...

  6. ie6下兼容问题

    最小高度问题:overflow:hidden 在ie6.7下 li本身不浮动 内容浮动 li产生3像素间隙 解决:vertical-align:top; 二.当ie6下最小高度问题和li间隙问题共存时 ...

  7. I Think I Need a Houseboat 分类: POJ 2015-06-11 17:52 12人阅读 评论(0) 收藏

    I Think I Need a Houseboat Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 92090   Acce ...

  8. Unity中HDR外发光的使用

    1.使用标准材质,设置好Emission外发光 2.Camera下打开HDR,加上Bloom特效 最终效果 如果只勾选HDR,只会有高光感,不会有外发光 注意,正向光照下打开HDR不可用抗锯齿,否则切 ...

  9. Redis的WEB界面管理工具phpRedisAdmin

    下载地址:http://down.admin5.com/php/75024.html 官方网址:https://github.com/ErikDubbelboer/phpRedisAdmin

  10. SQL Server 存储过程(转载)

    SQL Server 存储过程 Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这 ...