关于private和继承
程序员文章站
2022-07-15 16:59:53
...
1.private访问修饰符
被private修饰的方法和属性,只能被本类调用,包括子类的其他类不可以直接调用这个被private修饰的方法和属性。
public class TestPrivateAndBean {
private int age;
String name;
void method1(int age,String name) {
this.age=age;
this.name=name;
}
}
class NewOne extends TestPrivateAndBean{
boolean Male;
public void method2() {
TestPrivateAndBean tp = new TestPrivateAndBean();
tp.age; //这里会直接报错
}
}
2.在子类中给父类中被private修饰的属性赋值
当父类中的属性或方法被修饰为private时,创建子类对象时,子类可以获得该属性或方法但是不可以被直接调用,这些属性或放来来源于父类,但还都是咋子类对象里。
想要在子类对象中给这些属性赋值,必须在父类里设置set/get方法,由于继承,子类也会得到这些set/get方法,通过set/get方法就可以实现对该属性的赋值。
public class TestPrivateAndBean {
private int age;
String name;
void method1(int age,String name) {
this.setAge(age);
this.name=name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public static void main(String[] args) {
NewOne person = new NewOne(15, "IT guy", true);
System.out.println(person.toString());
//[name = IT guy age = 15 Male = true]
}
}
class NewOne extends TestPrivateAndBean{
boolean male;
public NewOne(int age,String name,boolean male) {
setAge(age);
this.name=name;
this.male=male;
}
public String toString() {
return "[name = "+name+" age = "+getAge()+" Male = "+male+"]";
}
}