【问题标题】:Can a main method be placed in a parent class? And if so can a child object be instantiated inside that main method?main方法可以放在父类中吗?如果是这样,可以在该主要方法中实例化子对象吗?
【发布时间】:2012-06-10 15:26:20
【问题描述】:

假设我有一个类“Person”和另一个类“Survey”,它扩展了 person,所以 Survey 是子类,Person 类是父类。 Person 是我编写的第一个类,因此现在在那里定义了 main 方法,因为我有一个子类,我可以从父类中的 main 方法调用子类的方法吗(或者我是否需要继续将 main 方法转移到尽管我确信这永远不会是必要的,但在等级制度中最低的阶级......)?如果是这样,这是否与子类继承父类的属性但父类不继承子类的任何属性的概念相悖?请务必回复。提前致谢。

此外,我还阅读了另一篇文章,其中有一个单独的类可能是 'driver.java 仅用于 main 方法,这是否意味着所有类都必须导入到这个类中,以便我们从 main 中的其他类调用方法方法?

希望我的问题不要太复杂。

【问题讨论】:

  • 不相关,但是SurveyPerson 怎么样?!
  • 父类通常不知道它的子类。可以有任意数量的子类,具有任意功能。
  • 听起来你在问“我如何在不移动任何代码的情况下重新设计我的代码”?答案是,“你没有”。如果你改变你的应用程序的工作方式,你将需要改变代码。如果你改变了作为你应用入口点的类,那么你需要移动 main 方法,就这么简单。

标签: java inheritance subclass main-method


【解决方案1】:

让我给你解释一下,

  1. 当您通过在sub class type 上调用new 创建子类的实例时,然后immediately 它的Super class constructor is called,它保留going till Object class,这称为@987654327 @。

  2. 在这个过程中所有instance variable都是declared and initialized

  3. most important是当它调用的子类的构造函数转到它的超类等等直到Object类,然后1st creating the Object class objectthen the class under它,till it reaches the subclass on whose class new was called,你会看到constructor of the super class is called first then its subclass's

对于您的上述问题,我还创建了一个与我给出的理论解释相吻合的示例。

例如:

      public class a {
    public static void main(String[] args) {

        B b = new B();
        b.go();
    }
}

class B extends a{


    public void go(){

        System.out.println("hello");

    }
}

【讨论】:

  • 非常感谢,这有助于我理解您的意思。再次感谢您为我解决这个问题。
【解决方案2】:

好吧,我试过了,即使我将 main 方法放在父类中,它也能正常工作。但是我已经做了一些阅读,观察到的做法是在一个单独的类中创建 main 方法,这样该类中只有 main 方法而没有其他方法。这在某些情况下提高了效率,并且是一种更清洁的方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多