如果父类中的属性被声明为protected,子类可以继承吗?
如果父类中的属性被声明为 protected,子类可以继承并访问该属性。
protected 访问修饰符表示该属性或方法可以被子类和同一包中的其他类访问。因此,子类可以继承父类的 protected 属性,并在子类中访问它。
例如,假设有如下的父类和子类:
public class Animal { protected String name; public Animal(String name) { this.name = name;}}public class Cat extends Animal { private int age; public Cat(String name, int age) { super(name); this.age = age;} public void printInfo() { System.out.println("名字:" + name + ",年龄:" + age);}}
在这个示例中,Animal类中的name属性被声明为 protected,表示它可以被子类继承和访问。Cat类继承了Animal类并定义了一个age属性。在Cat类的构造方法中,使用 super 关键字调用父类的有参构造方法来初始化父类的属性name。
在printInfo()方法中,直接访问了父类的 protected 属性name。由于它是 protected 的,因此Cat类可以访问它。
需要注意的是,子类可以继承父类的 protected 属性,但是它不能访问父类的私有(private)属性。私有属性只能被父类自身的方法访问,对于子类来说是不可见的。
网友评论