protected 修饰符
protected 修饰符用来修饰成员变量,成员方法,构造方法。protected所修饰的只能通过同一个包下、不同包的子类、匿名内部类的方式访问,代码如下:
定义一个Student类
package cn.huaqi.base;
public class Student {
protected int age = 0;
protected Student() {
}
protected void setAge(int age) {
this.age = age;
}
}
定义一个Teacher类
package cn.huaqi.domain;
import org.junit.Test;
import cn.huaqi.base.Student;
public class Teacher {
@Test
public void test1(){
}
}
由于 Student构造方法protected修饰不能直接访问,如果修改Teacher 类继承Student
public class Teacher extends Student{
@Test
public void test1(){
super.setAge(0);
}
public Teacher(){
super();
}
}
就可以访问 Teacher类的protected方法,和构造方法
如果我们不继承Teacher类其实也可以访问,就是通过内部类的方式。
public class Teacher {
@Test
public void test1(){
Student student = new Student(){
@Override
protected void setAge(int age) {
// TODO Auto-generated method stub
super.setAge(age);
}
};
}
}