一.继承的概念及相关的用法及关键字
关于Java的三大特征:封装性,继承性和多态性
继承是多态的前提
1.倾囊相授的师傅(共性抽取是继承的本质)子父类
子类可以拥有父类的内容,自己专有的内容
子类就是一个父类
2.继承的格式
父类定义和普通的没区别
public class 子类名称 extends 父类名称{
greg zaccagbino}
3.继承中成员变量的访问特点
在子父类继承关系当中,如果成员变量重名了,则创建子类对象时,访问有两种方式(重名的情况)
1)直接通过子类对象访问成员变量:等号左边是谁就优先用谁,没有的话就网上找
2)本质就是:方法里面system.out输出一个成员变量值
间接地通过成员方法访问成员变量:看方法属于谁,属于谁就优先用谁,没有再往上找
4.区分子类方法中重名的三种变量;super关键字
局部变量,就直接写就完事了;子本类当中的成员变量:this.成员变量名; 调用父类当中的成员变量:super.成员变量名
5.继承当中成员方法的访问特点
不论是成员变量还是成员方法,如果没有都是向上往父类找,绝对不会向下找子类的。
6.继承中的覆盖重写(override)
在继承关系当中,方法的名称一样,参数列表也一样
1)重载与覆盖重写:
1、重载发生在本类,重写发生在父类与子类之间;2、重载的方法名必须相同,重写的方法名相同且返回值类型必须相同;3、重载的参数列表不同,重写的参数列表必须相同。
2)特点:创建的是子类对象,则优先使用子类方法(new的是谁,用的就是谁了)
没有再往上找
3)注意事项
1.@Override可选的检测性注解:辨别方法名称和参数列表是否相同
2.关于返回值类型:子类的<=父类的,object是祖类,最大的
3.关于修饰符号的权限:子类的>=父类的,public>objected>(default)>private
7.父子类构造方法的访问特点
1)子类构造方法中有一个默认隐含的super();调用,所以什么都不写,先调用父类构造方法
2)子类通过super()实现父类重载构造
3)super的父类构造调用,必须是子类构造方法的第一个语句,不能一个子类构造调用多次super构造
8.区分普通的方法与构造方法
构造方法是用来创建构造方法的。
9.super与this的三种用法
在子类成员方法中访问父类的成员变量 | 在本类成员方法中访问本类的成员变量 |
在子类成员方法中访问父类的成员方法 | 在本类成员方法中访问本类另一个的成员方法 |
在子类构造方法中访问父类的构造方法 | 在本类的构造方法中访问本类的另一个构造方法 |
1)关于this关键字:构造方法的重载调用,比如
public class Zi extends Fu{
public Zi(){
this(111);
}
public Zi(int num){
syso("本类的无参构造调用本类的有参构造成功,这就是构造方法的重载调用");
}
}
2)this 的构造调用必须是构造方法的第一个语句,也只能是唯一的一个
super,this两种构造调用不能同时使用,因为他们各自都必须是唯一的。
10.super与this关键字图解
本类的局部变量,本类的成员变量,父类的成员变量以及子父类方法的内存演化过程。
注意点:栈里面,父类是子类的子集,子类会继承父类的全部,并加以更新。 重要设计原则:类名一旦定义了最好不要去修改,咱们新建一个类进行继承,能用的就用,不能用的不用就好了
二.Java中继承的特点
1.Java语言是单继承的,一个类的直接父类只能是唯一的一个
2.Java语言可以多级继承(爷爷辈的存在)
继承结构的顶端:Java.lang.Object
3.一个父类可以拥有很多个子类