类内 | 包内 | 子类 | 任意 | |
public | y | y | y | y |
protected | y | y | y | |
default | y | y | ||
private | y |
public 公开的资源
protected 为了子类中使用
default 建议不用
private 常用
注:
一、定义类必须公有public,一个文件一个类(建议)
二、每一个类,必须加上无参数构造器
三、super
1. super(); 引用父类,在构造器里使用
2. 子类使用:super.getFn(); --- getFN() 父类里的方法
四、方法覆盖
f(int)和f(String)由于参数不同,所以无法覆盖
java1.5之后,允许子类将覆盖方法的返回类型定义为原返回类型的子类型。
五、类加载,class类型
例如:
public class A
{
int a = 1;
}
public class B extends A
{
A a = new A();
System.out.println(a.a);
}
类加载顺序:堆:A : a=1; -> B=A -> B: a=1; 栈:a = 1;
六、多态
上例:
B b = new B();
也可以
A b = new B();