访问权限
class | private | default | protected | public |
---|---|---|---|---|
own class | yes | yes | yes | yes |
subClass - same package | no | yes | yes | yes |
class - same package | no | yes | yes | yes |
subClass - another package | no | no | * yes or no | yes |
class - another package | no | no | no | yes |
protected成员或方法,当子类与基类不在同一包下时:
只能在子类中访问父类的protected成员或方法,不能通过子类的实例化对象访问。
泛型
-
泛型类:class ClassName
-
泛型子类:
明确类型参数变量时:class SubClassName extends ClassName<具体的类型>具体的类型>
不明确类型参数变量是:class SubClassName
-
泛型方法:
T method(T t) -
类型通配符:ClassName<?> className
在特定场景下可以替换泛型方法,用于抽象泛型类的实例化对象。
-
通配符上界:ClassName<? extends Class> classObject
表示类型参数变量是Class类的子类。在此classObject中获取的该泛型对象,可以认为是Class的对象实例。即可读。
- 通配符下界:ClassName<? super Class> classObject
表示类型参数变量是Class类的父类。可以将Class及其子类的对象,写入到此classObject中。即可写。
- 泛型擦除
NIO??
注解Annotation
- 元注解:@Retention,@Target,…
- 自定义定义注解:@interface myAnnotationName{}
- 自定义注解的实现:通过反射的方式,获取注解信息