一、
静态代码块
构造代码块
普通代码块 方法中的{}
构造方法
静态代码块随类型加载到方法区中时被首先执行,且程序执行过程中只执行一次,构造代码块和构造方法每创建一次对象就被调用一次
二、package、import
1、package 包名;必须位于第一行
2、位于不同包的类需要引入,表示指明这个类的位置,具体语法是
全限定名(也叫全路径名、全类名,即包名.类名)
import 全限定名;
当在同一个包中引入不同类时,可以使用*表示引入这个包中所有类,比较省事
import不能同时引入同名类
对于java.lang包里的类,jvm会默认给该类引入包名
三、继承
类和类之间的关系
1、A is B
2、里式替换原则:子类对象可以当作父类对象去用
public class A{
}
public class B extends A{
}
四、继承解释
1、子类可以从父类继承属性和行为,反之不可以
2、父类,基类、超类
子类,派生类
3、java的类单继承,因此java号称单继承
单继承,即一个类只能有一个直接父类
4、java中唯一一个没有父类的类 Object,它是所有java类的“始祖”,一个类没有明确写出直接父类,那么它就直接继承自Object
java有一句口号:Everything is Object 万物皆对象
五、重写
1、返回值类型如果是void、基本数据类型,重写前后必须一致
返回值类型如果是引用数据类型,重写后返回值类型要与原来一致或是原来的子类
2、重写前后方法名要一致
3、参数列表要一致
4、静态方法不能被重写
5、子类方法异常范围不大于父类方法异常
六、子类对象创建的过程
需要顺着继承关系向上找,先调用“爷爷”类的构造方法、再调用父类的构造方法、再调用子类的构造方法,即先有父对象,才有子对象
image.png
七、B继承A关系下,静态代码块、构造代码块、构造方法执行的次数和顺序
new B();
new B();
执行效果:
调用A的静态代码块了
调用B的静态代码块了
调用A的构造代码块了
调用A的构造方法了
调用B的构造代码块了
调用B的构造方法了
调用A的构造代码块了
调用A的构造方法了
调用B的构造代码块了
调用B的构造方法了
八、super
spuer.属性或行为
super()
子类所有构造方法第一行必须调用父类构造方法,当程序没有明确写出时,jvm会默认在子类构造方法第一行加一个super(),即调用父类的无参构造方法,也可以手动调用父类的构造方法,即手动第一行加一个super()
public class Father{
public Father(int a){
}
}
public class Son extends Father{
}
this()和super()不能同时写在一起
网友评论