为什么不覆盖类字段

其余的部分

我知道在Java和C#类中,字段没有被覆盖(但是方法可以)。我知道这个事实,但是我不明白执行此操作的原因是什么。这是不可预测的且显而易见的。为什么我们有这样的OOP实现?

public class Flight {
    int seats = 150;
}

public class CargoFlight  extends Flight {
    int seats = 12;
}

CargoFlight f1 = new CargoFlight();
System.out.println(f1.seats);

Flight f2 = new CargoFlight();
System.out.println(f2.seats);

和:

class Flight
{
    public int Seats = 150;      
}

class CargoFlight : Flight
{
    public int Seats = 20;
}

class Program
{
    static void Main(string[] args)
    {
        CargoFlight f1 = new CargoFlight();
        Console.WriteLine(f1.Seats);

        Flight f2 = new CargoFlight();
        Console.WriteLine(f2.Seats);            

        Console.ReadLine();
    }
}
一点点

正如您提到的那样,这些语言基于OOP,并且OOP在很大程度上受现实世界概念的影响。举一个真实的例子:如果孩子从父母那里继承了某些东西,他/她将继承父母的状态(财产,财富等,他/她不能通过增加更多的财富来替代),但是他/她可以超越父母的行为(他/她如何说话,走路,理解等)。

同样,在编程中,当类继承时,它从父类继承状态和行为。但是,尽管可以使用它,但它不能任意覆盖父状态。子类具有覆盖父项行为(方法)的自由。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么子类不覆盖python中基类的字段以及如何处理

来自分类Dev

为什么子类不覆盖python中基类的字段以及如何处理

来自分类Dev

在C#中,为什么子类字段的默认值不覆盖超类字段的默认值?

来自分类Dev

在C#中,为什么子类字段的默认值不覆盖超类字段的默认值?

来自分类Dev

为什么ID不覆盖引导程序中的类?

来自分类Dev

为什么特质不覆盖类中的方法?

来自分类Dev

为什么上载类不更改覆盖的方法?

来自分类Dev

为什么派生模板类的函数不覆盖非模板基类的纯虚函数?

来自分类Dev

为什么子类不覆盖其超类变量的值?

来自分类Dev

为什么不覆盖该对象?

来自分类Dev

Julia为什么不覆盖Array的值?

来自分类Dev

C ++为什么不附加或覆盖文件?

来自分类Dev

为什么肢体类覆盖页脚html

来自分类Dev

为什么 PDFBox 会覆盖多个字段,即使它们与fullyQualifiedName 不匹配?(科特林安卓)

来自分类Dev

JAXB为什么不生成完整的类?

来自分类Dev

为什么不锁定基于值的类

来自分类Dev

为什么不编译此模板类?

来自分类Dev

为什么类对象的类方法不返回元类?

来自分类Dev

为什么KeyValuePair不覆盖Equals()和GetHashCode()?

来自分类Dev

为什么不覆盖Line2D.equals?

来自分类Dev

XSLT:为什么/ * / *覆盖/ * / x而*不ovverides x?

来自分类Dev

覆盖为默认说明符...为什么不呢?

来自分类Dev

为什么collections.Counter不覆盖__iadd__方法?

来自分类Dev

为什么“导出”不覆盖现有值?

来自分类Dev

覆盖为默认说明符...为什么不呢?

来自分类Dev

为什么我不能在Integer类中覆盖self?

来自分类Dev

为什么我的ID无法覆盖Bootstrap类?

来自分类Dev

在Python中,为什么类方法会覆盖实例方法?

来自分类Dev

为什么有时无法覆盖类函数?

Related 相关文章

  1. 1

    为什么子类不覆盖python中基类的字段以及如何处理

  2. 2

    为什么子类不覆盖python中基类的字段以及如何处理

  3. 3

    在C#中,为什么子类字段的默认值不覆盖超类字段的默认值?

  4. 4

    在C#中,为什么子类字段的默认值不覆盖超类字段的默认值?

  5. 5

    为什么ID不覆盖引导程序中的类?

  6. 6

    为什么特质不覆盖类中的方法?

  7. 7

    为什么上载类不更改覆盖的方法?

  8. 8

    为什么派生模板类的函数不覆盖非模板基类的纯虚函数?

  9. 9

    为什么子类不覆盖其超类变量的值?

  10. 10

    为什么不覆盖该对象?

  11. 11

    Julia为什么不覆盖Array的值?

  12. 12

    C ++为什么不附加或覆盖文件?

  13. 13

    为什么肢体类覆盖页脚html

  14. 14

    为什么 PDFBox 会覆盖多个字段,即使它们与fullyQualifiedName 不匹配?(科特林安卓)

  15. 15

    JAXB为什么不生成完整的类?

  16. 16

    为什么不锁定基于值的类

  17. 17

    为什么不编译此模板类?

  18. 18

    为什么类对象的类方法不返回元类?

  19. 19

    为什么KeyValuePair不覆盖Equals()和GetHashCode()?

  20. 20

    为什么不覆盖Line2D.equals?

  21. 21

    XSLT:为什么/ * / *覆盖/ * / x而*不ovverides x?

  22. 22

    覆盖为默认说明符...为什么不呢?

  23. 23

    为什么collections.Counter不覆盖__iadd__方法?

  24. 24

    为什么“导出”不覆盖现有值?

  25. 25

    覆盖为默认说明符...为什么不呢?

  26. 26

    为什么我不能在Integer类中覆盖self?

  27. 27

    为什么我的ID无法覆盖Bootstrap类?

  28. 28

    在Python中,为什么类方法会覆盖实例方法?

  29. 29

    为什么有时无法覆盖类函数?

热门标签

归档