繁体   English   中英

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

[英]Java Beginner: Subclasses and Superclasses -Can you remove values?

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

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

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

简单的答案:

不,你不能,你不应该!

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

看看这个: Liskov替代原理

extend意味着继承。 对于可以继承和不能继承的内容,您没有精确的选择。

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM