我是 Java 初学者,我正在研究子类和超类。
我知道您可以将不在超类中的值/属性/行为添加到子类中,以使其更加“特定于任务”。
但我的问题是,我可以从子类中删除属于超类的属性或行为值吗?
我是 Java 初学者,我正在研究子类和超类。
我知道您可以将不在超类中的值/属性/行为添加到子类中,以使其更加“特定于任务”。
但我的问题是,我可以从子类中删除属于超类的属性或行为值吗?
extend
意味着继承。对于可以继承和不能继承的内容,您没有精确的选择。
如果父类决定公开一些公共变量等,子类不能改变它。
如果父类不想公开某些字段,可以将其标记为private
.
另外:一个类应该为扩展它而开放,但为改变它而关闭。
您不能从子类中删除超类的变量和方法,但您可以在子类中隐藏字段并覆盖方法:
class Employee {
String name = "Employee";
public void work() {
System.out.println("Do some work");
}
}
class Programmer extends Employee {
String name = "Programmer";
public void work() {
System.out.println("Write programs");
}
}