Java修饰符大小
public>protected>default>private
final方法不等同于private方法
虽然类中的private方法都隐式地指定为final,但是二者并不是等同的。private是访问权限修饰符,用于控制外界对类内部成员的访问,private方法只能在类的内部访问,而final方法可以在类外部访问
- final修饰类,表示类不可被继承
- final修饰变量,表示变量不可更改
- final修饰方法,表示方法不可被覆盖
方法重写原则(两同两小一大)
- 方法名相同,参数类型相同
- 子类返回类型小于等于父类方法返回类型
- 子类抛出异常小于等于父类方法抛出异常
- 子类访问权限大于等于父类方法访问权限
IO流
System.out.println含义
- System是java.lang包下的一个类
- out是System类的一个final静态成员(public final static PrintStream out = null;)
- println()是PrintStream类的实例方法
静态代码块、构造方法、代码块执行顺序
父类静态代码块->子类静态代码块->父类非静态代码块->父类构造方法->子类非静态代码块->子类构造方法
原因分析:当实例化子类对象是,首先加载父类的class文件到内存中,静态代码块随着类的创建而执行,所以父类静态代码块最先被执行,子类class文件再被加载,子类静态代码块被执行;实例化子类对象要先调用父类的构造方法,而调用父类构造方法前会先调用父类的非静态代码块
匿名内部类
创建格式:
new 父类构造器(参数列表)|实现接口()
{
//匿名内部类的类体部分
}
- 使用匿名内部类时,必须继承一个类或实现一个接口
- 匿名内部类由于没有名字,因此不能定义构造函数
- 匿名内部类不能含有静态成员变量和静态方法
- 匿名内部类的方法不能是抽象的