父类SuperClass 子类 SubClass
1.继承是面向对象的特点之一(封装,继承,多态,抽象)。作用是程序的复用和分离。
2.JAVA 的继承是单一继承,允许拥有一个父类,但是父类也可以拥有一个父类。
好处是能更好的层次化和清晰化的分析类。缺点则相对于多重继承没有那么的多元化和丰富化。(JAVA为了弥补这一缺点则是用了接口)
3.任意一个类,在没有明确写出extends 谁的时候,都是extends Object. Object类,是JAVA所有类(包括数组)的根类。
4.Object类的有8种方法
1).getClass 该方法不能被重写
2).gashCode 得到哈希值
3).toString 返回当前对象的字符串描述,在写程序的时候,经常会重写该方法
4).equels 判断是否相等
5).finalise 销毁对象,被GC (java垃圾回收机制)调用,不要重写他
6).wait 命令停止,该方法不能被重写,用于多线程中
7).notify 唤醒命令,该方法不能被重写,用于多线程中
8).Clone 克隆一个对象,这是四种创建对象的方法之一
5. 方法的重写:
1)重新修改父类的方法,只能改变访问修饰符让其声明范围不小于父类方法的修饰符,不改变返回类型,不改方法名,不改变参数,叫做方法的重新。
2)父类方法重写后,想调用父类的方法而不是重写后的方法,则需要用super.***();
6. 继承内存机制是内存叠加。先分配父类对象空间,在其内存位置后面分配子类对象空间,但始终只会拥有一个对象。
7. 关于继承中的 this 和super
this.调用本类的方法和属性 用法是this.***; this.***();
可以任意调用本类方法和属性, 也可以调用父类的方法和属性,但是受到访问修饰符影响。尽量用他
this(); 调用本类构造器,只能写入构造器的第一句。并不会默认写入
super. 不能调用当前内的方法和属性,调用父类的方法和属性也要受到访问修饰符的影响。
用法是super.***; super.***(); 仅用于父类方法重写后,想调用父类的方法而不是重写后的方法
super();调用父类构造器,当子类没有写的时候,系统会默认写入一个无参的父类构造器的调用方法 super(); 若是父类没有无参构造器且子类 没有写入 super(**); 有参。则会报错。 同this() 一样,只能写在构造器的第一局。
This() 和super() 只能存在一个在构造器里面。
8. 父类的构造方法 是不会被子类继承的。
9. 关于final
1)声明一个常量
2)声明一个最终类,该类是不能被继承。String 就是一个常见的典型的最终类。
3)声明一个最终方法,该方法不能被重写