继承
一.static :
1.静态的可以用来修饰成员变量/静态变量/类变量
2.静态变量它是随着类的加载而加载的,它是被这个类的所有对象所共享的。
3.普通成员变量是它是随着对象的创建而产生的,不同的对象之间是相互独立的,如果使用必须先创建对象
二.static可以用来修饰方法,被static修饰的方法是静态的方法
1.在同一个类中,静态方法不能调用普通的方法,因为普通的方法不是静态的方法,它是随着对象的调用猜产生的。
2.在同一个类中,普通方法是能调用静态的方法的。也可以先创建对象在调用。因为静态的方法是随着类的加载而加载的
3.不同类中的方法调用普通方法调用另一个类中的静态方法,可以先创建对象调用,也可以直接类名.方法名();进行调用
4.不同类中,静态方法调用另一个类中的静态方法,可以先创建对象,在调用,也可以直接类名.方法名();进行调用
5.普通方法的调用在同一个类中,直接.方法名
6.不同类中的方法之间的调用,它是必须是先创建对象后才能调用
三.static可以用来修饰代码块,修饰后的代码块就是静态代码块
1.代码块/构造代码块/成员代码块:每一次创建对象,都会执行。优先于构造方法。
{}
静态代码块:类加载的时候执行一次。只是在类加载的时候执行一次,只执行一次
static{}
四.继承
1.继承的作用,就是用来复用代码。将子类的公有的代码提取出来,储存到父类中。到时候子类就能继承父类,就可以重复使用父类中的代码
2.继承的使用
①定义父类
public class Pet{
//父类中公有的代码
}
②定义子类
public class Dog extends Pet{
//子类特有的代码
}
3.面向对象的三大特性之一就时继承
Java:单根继承,一个子类只能有一个父类。(一个人只能有一个亲生的父亲)
在程序设计的时候要符合is---a 的关系
例如:猫 is a 宠物 学生 is a 人
4.理解继承
①父类不是所有的内容都能被子类继承的!
5.父类的哪些不能被子类继承
①父类私有的(private修饰的)不能被继承。
②父类的构造方法不能被继承
③如果父类和子类不是在同一个包中的,那么父类中的默认的修饰符的额内容不能被继承
6.protected:受保护的,在不同的包中,只要是有父子类继承关系的,那么在子类中就可以访问信息。
访问修饰符\访问权限 | 在同一个类中 | 在同一个包中 | 在子类中 | 在项目任何位置 |
---|---|---|---|---|
private | √ | |||
默认修饰符 | √ | √ | ||
protected | √ | √ | √ | |
public | √ | √ | √ | √ |
五.执行流程的特点:(构造的执行流程:经常在面试题中出现)
1.子类的构造方法中,如果没有显示的去调用父类的构造方法,或者调用自己的其他的构造方法,那么系统会自动调用父类的无参构造方法,(默认的super()调用)
public Dog(){
super();
}
六.super关键字
1.this当前对象,谁调用这个方法谁就是当前的对象
①this();调用自己的构造方法
②this.方法();调用自己的方法
③this.成员变量();调用自己的属性
2.super:父类的对象,谁是它的父类,这个对象就是谁。
①super();调用父类的构造方法
②super.方法();调用父类的方法
③super.成员变量();调用父类的属性
3.如果子类在构造中,显示了调用父类的某个构造,系统就会去执行相应的构造。而不会再去执行默认的无参构造了
public Dog(){
super(“mmmm”);
}
4.如果在子类构造中,显示调用了自己的某个构造,那么系统会先去执行你自己的构造,而那个构造中也会根据上面的俩条情况来执行相应的父类构造。