class:只能使用public, abstract,final来修饰,用final修饰的类无法被继承。
method: abstract只能用protected或public修饰。
下面提到的default并不是使用default关键字修饰,而是什么都不写时,默认的修饰。
method:实例的访问权限,继承的复写权限,访问权限;
同包下继承时,可访问public,protected,default。可复写public,protected,default。
同包下的实例可访问public,protected,default。
不同包下继承时,可访问public,protected。可复写public,protected。
不同包下的实例只可以访问public。
attribute:实例的访问权限,继承的访问权限;
同包下继承时,可访问public,protected,default。
同包下实例可访问public,protected,default。
不同包下继承时,可访问public,protected。
不同包下实例可访问public。
总结:
private是类级别的访问限制,default是包级别的访问限制,protected是不同包的继承扩展访问限制,public是没有访问限制。
PS.
方法复写的细节:1.继承后复写的方法可以扩大方法的访问权限,不可以缩小(父类为protected,子类复写后可以将其更改为public);2.子类复写的方法的返回值可以为父类该方法返回值的子类,不可以为父类方法返回值的父类。3.子类方法抛出的异常可以为父类方法抛出异常的子类而不能为父类方法抛出异常的父类。