java容易忽视的基础知识(笔试用)类的访问说明符public?? 可以任意访问default? 只有同一个包中才能访问类
java容易忽视的基础知识(笔试用)
类的访问说明符
public?? 可以任意访问
default? 只有同一个包中才能访问
类的其他修饰符
final??? 不能被其他类继承,如String
abstract 抽象类,不能实例化
?
方法的访问说明符
private???? 只能同一个类中访问
protected 同一个类或子类访问
public?????? 所有都能访问
default?????只有同一个包中才能访问
?????????????? 同类? 同包? 子类(不同包) 不同包
public???????? Y???? Y??????? Y?????????????????????? ?Y
protected?? Y???? Y?????? ?Y??????????????????????? N
default?????? Y???? Y??????? N??????????????????????? N
private?????? Y???? N??????? N????????????????????? ? N方法的其他修饰符
static??? 静态方法,属于类
final???? 该方法在继承中保持不变,不能被重写。class中所有private和static方法自然就是final
abstract? 抽象方法。子类如果没有实现父类抽象方法,该子类必须为抽象类。构造方法、静态方法、私有方法、final方法不能被声明为抽象的方法
native??? JNI。允许Java操作其他语言写的程序和库
synchronized
?????? finalize方法 该对象被回收之前调用。System.gc()显式回收垃圾
?
接口
接口中所有的方法都是public abstract
在接口中声明方法时,不能使用native、static 、final 、synchronized 、private 、protected等修饰符
接口中可以有数据成员,这些成员默认都是public static final
一个接口可以继承自另一个接口
Java中不允许类的多继承,但允许接口的多继承,一个接口可以extends多个接口
在Java中,一个类可以实现多个接口
一个类在继承另外一个类的同时,可以实现多个接口
?
内部类
在一个类中定义另外一个类,这个类就叫做内部类
内部类可以访问外部类所有的成员方法和变量(包括private)
内部类访问自己成员:this. 内部类访问外部类成员:外部类名.this.
其他地方产生内部类:外部类对象名.new 内部类类名()
方法中定义的内部类只能在该方法中使用,方法中的局部变量声明为final才能被内部类访问
内部类可以声明为private或protected;还可以声明为abstract或final
内部类可以声明为static的,但此时就不能再使用外部类的非static的成员变量和非static的成员方法
非static的内部类中的成员不能声明为static的,只有在顶层类或static的内部类中才可声明static成员
?