Java初学者:子类和超类 - 您可以删除值吗?

时间:2013-08-16 08:00:32

标签: java attributes behavior superclass

我是Java初学者,我正在研究子类和超类。

我知道你可以将不在超类中的值/属性/行为添加到子类中,使其更具“特定于任务”。

但我的问题是,我可以从子类中删除属于超类的属性或行为值吗?

4 个答案:

答案 0 :(得分:7)

简单回答:

不,你不能和你不应该!

超类有一个属性应该总是有意义的。

看看这个:Liskov Substitution Principle

答案 1 :(得分:0)

extend意味着继承。你没有精确的选择,你可以继承什么,不能做什么。

如果父类决定公开一些公共变量等,则子类不能改变它。

如果父类不想公开某些字段,则可以将其标记为private

另外:一个类应该打开以扩展它,但关闭以便更改它。

答案 2 :(得分:0)

您可能需要查看访问级别修饰符:http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

答案 3 :(得分:0)

您无法从子类中删除超类的变量和方法,但您可以隐藏字段并覆盖子类中的方法:

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");
    }
}