1.继承
1.1继承的概念
继承:在Java中,继承是描述类与类之间的关系。(父子)
特点:1.子类可以访问父类中所有非私有的成员,父类不可以访问子类成员。(子类可以找父类,父类不能找子类)
2.子类要加载,要先加载父类。(先有的爹后有的儿子)
3.单一继承,多层继承。(一个儿子只有一个亲爹,但是爹还有爹)
4.子类知道自己的父类是谁,但是父类不知道子类。(从继承格式体现)
注意:Java中任何一个类如果在没有继承的情况下,都是默认继承于Object类
Object是:基类,超类,根类。(炎黄)
Java中所有类都是直接或者间接继承于Object类
1.2继承的格式
extends:生产 ---> 继承
子类的定义格式:(继承的声明在子类上,子类知道自己父类是谁)
public class 子类名 extends 父类名{
}
父类的定义格式:(父类不知道,哪些子类继承了它) --->段正淳
public class 父类名称{
}
学习技巧:从子类出发,将子类中的共性成员进行向上抽取,再利用继承关系来访问这些成员。
1.3继承关系下成员的访问特点:
在继承关系前提下,访问子类成员:
1.当子类有该成员,则优先访问子类成员,子类没有找父类要,如果所有的父类都没有,那就报错!!
总结:优先级:子类 > 父类
1.4 继承关系下构造方法的访问特点
1.当调用子类构造方法时,当方法中没有申明调用父类构造方法时,系统会默认在子类构造方法的第一行提供一个super();
2.当子类中调用了父类的构造方法时,系统就不提供super();
3.super:本类父类对象的引用。 (亲子鉴定)
public class Die {
int age;
String name;
public Die() {
System.out.println("父类无参构造");
}
public Die(int age, String name) {
this.age = age;
this.name = name;
System.out.println("父类有参构造");
}
}
class Zai extends Die{
int age;
String name;
public Zai() {
super();//在子类的构造方法中如果没有任何调用父类构造方法的语句,就会在子类构造方法的第一行默认super();
System.out.println("子类无参构造");
}
public Zai(int age, String name) { // this口诀:哪一个对象调用了this所在的方法,this就代表那一个对象
//super(); supe