GitHub: https://github.com/lgsdaredevil/keyWords.git
public:公共的,外部可见方法
public void publicTest(){
System.out.print("this is public method!\n");
}
private:私有的,外部不可见,只能本类调用的方法
private void privateTest(){
System.out.print("this is private method!\n");
}
public void getPrivate(){
this.privateTest();
}
protected:被保护的方法,存在继承关系,父类方法被保护,父类可以自己调用,子类也可以调用父类的protected方法,非继承关系不可见
Father类:
protected void protectedTest(){
System.out.print("this is father's protected method!\n");
}
private void privateFather(){
System.out.print("this is father's private method!\n");
}
public void fatherTest(){
this.privateFather();
this.protectedTest();
}
Child类:
public void childTest(){
System.out.print("this is child's method\n");
super.protectedTest();
}
main方法:
public static void main(String[] args){
JavaPublic javaPublic = new JavaPublic();
javaPublic.publicTest();
JavaPrivate javaPrivate = new JavaPrivate();
javaPrivate.getPrivate();
Child child = new Child();
child.childTest();
// 父类对象引用子类不可以调用父类的protected方法
Father father = new Child();
father.fatherTest();
}
输出结果:
总结:
public 外部可见
private 外部不可见,只能本类调用
protected 继承关系中,基类还有protected修饰成员,衍生类可以调用,非继承关系不可见
个人公众号,不定期更新笔记分享,欢迎关注