gpt4 book ai didi

java - 为什么类字段不被覆盖

转载 作者:行者123 更新时间:2023-11-30 03:00:32 25 4
gpt4 key购买 nike

我知道在 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 很大程度上受到现实世界概念的影响。来自现实世界的例子:如果一个 child 从他/她的 parent 那里继承了一些东西,他/她继承了 parent 的状态(属性(property)、财富等,他/她不能通过增加更多的财富来覆盖这些),但他/她可以覆盖 parent 的行为(他/她如何说话、走路、理解等)。

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

关于java - 为什么类字段不被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36127883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com