我们都站在巨人的肩膀上
我们所写的正常属性修饰符有public、private、protected。这些相信大家都不陌生,近几天和同事讨论,在普通的类中属性不写以上修饰符,那么访问权限是什么?是默认的friendly访问权限,不存在该关键字。
friendly与protected有什么区别呢?
- protected 的访问权限在同包,子类也可继承。
- friendly 则在子类中是不可继承。
以下是示例
protected:
public abstract class User {
protected String id;
}
public class Main extends User{
public void syso(){
System.out.println(super.id);//正确
}
}
friendly:
public abstract class User {
String id;
}
public class Main extends User{
public void syso(){
System.out.println(super.id);//报错
}
}
则interface的方法默认是public abstract
public interface User {
String test();
}
public class Main {
public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, SecurityException {
Class<?> clz = Class.forName("com.jjjr.test.User");
System.out.println(clz.getMethod("test"));;
}
}
输出:
public abstract java.lang.String com.jjjr.test.User.test()