public、private、protected修饰的方法

GitHub: https://github.com/lgsdaredevil/keyWords.git

public:公共的,外部可见方法

1
2
3
public void publicTest(){
System.out.print("this is public method!\n");
}

private:私有的,外部不可见,只能本类调用的方法

1
2
3
4
5
6
7
private void privateTest(){
System.out.print("this is private method!\n");
}

public void getPrivate(){
this.privateTest();
}

protected:被保护的方法,存在继承关系,父类方法被保护,父类可以自己调用,子类也可以调用父类的protected方法,非继承关系不可见

Father类:

1
2
3
4
5
6
7
8
9
10
11
12
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类:

1
2
3
4
public void childTest(){
System.out.print("this is child's method\n");
super.protectedTest();
}

main方法:

1
2
3
4
5
6
7
8
9
10
11
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修饰成员,衍生类可以调用,非继承关系不可见

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
显示 Gitment 评论