访问修饰符:
主要修饰方法和属性。
private :私有的,只能在类的内部使用。而且不能被子类继承。
一旦一个类的方法被修饰,一个是继承不了,另一个是访问不了
----------------------我是无敌分割线------------------
protected:保护的,子类可以继承,必须在同一个包中。同一个包中的类可以访问
----------------------我是无敌分割线------------------
public:公共的,随便访问属性或方法
----------------------我无敌分割线------------------
位置
|
private
|
默认
|
protected
|
public
|
同一个类
|
是
|
是
|
是
|
是
|
同一个包内的类
|
否
|
是
|
是
|
是
|
不同包内的子类
|
否
|
否
|
是
|
是
|
不同包并且不是子类
|
否
|
否
|
否
|
是
|
方法修饰符:
static:静态的,可以修饰方法和属性,修饰方法通过类名来调用,只能引用静态属性。静态属性最好用类名来访问。
----------------------我是无敌分割线------------------
final:最终的,可以修饰类、属性、方法。当它修饰类的时候意味着这个类不能有子类。例如:
public final class A {
public void func(int i){
System.out.print("类A的func被调用");
}
protected String name;
}
package Txt1;
public class B extends A{
public void func(String i){
System.out.println("类B的func被调用");
}
}
此例会出错。
如果用final修饰方法,那意味着这个方法不能被子类重写。
如果用final修饰属性,那这个属性就是常量(不能更改)。
Final包中有例子
----------------------我是无敌分割线------------------
abstract:抽象的,用来修饰方法和类。类被abstract修饰之后不能实例化。也不能被创建对象。唯一办法就是使用子类。可以被重写
public abstract void abc();//抽象方法
public abstract void abc(){
}
如果一个类中有一个抽象方法,那这个类必须是抽象类。(反之不见得成立)
集体合作的时候有用。实际应用中少见