0

我有一个名为“parents”的父类和一个名为“child”的子类,它扩展了父类。如果子类和父类都具有相同的参数但行为构造函数不同,那么如果我创建子类对象,它将自动调用我不想要的父类构造函数。这是怎么可能的。

前任。

    class parents
    {
      parents()
      {
      
     System.out.println("hello, i am 
          parents class constructor");
      }
    }

    class child extends parents
    {
      child()
      {
     System.out.println("hello, i am 
  child class constructor");
      }
    }

    class main
    {
      public static void 
   main(String[] args)
      { 
        child c = new child();
      }
    }

现在在这里,

输出是……

    hello, i am  parents class constructor
    hello, i am  child class constructor

但我只想...

    hello, i am child class constructor

意味着只运行子类构造函数而不是父类。

怎么可能...

4

1 回答 1

3

每当调用类的构造函数时,也会隐式调用其父类的构造函数。

正如@SilvioMayolo 在评论中指出的那样,原因是

“如果你不希望孩子表现得像父类,那么它不应该是父类。”

从概念上讲,它是一个子类,因为子类从其父类继承了一些属性或功能。如在您的示例中,如果您不想"hello, i am parent class constructor"在调用子构造函数时被打印,则实际上不需要子的父类实际上是其父类。

因此,您想要实现的功能在 Java 中是不可能实现的,因为它是该语言的隐含特性。

于 2021-02-04T04:43:39.627 回答