我是Java的新手。方法在继承的情况下重写
所以我很想知道,当有两个继承类存在,它有2个重写方法和2个构造函数(默认构造函数)。
所以当创建子类对象时,两个默认构造函数都是根据派生顺序调用的。但是,如果方法被覆盖,是否会发生?
我是Java的新手。方法在继承的情况下重写
所以我很想知道,当有两个继承类存在,它有2个重写方法和2个构造函数(默认构造函数)。
所以当创建子类对象时,两个默认构造函数都是根据派生顺序调用的。但是,如果方法被覆盖,是否会发生?
当在Java中重写方法时,子类中的方法代替父类中的方法,因此只有子类中的方法才会执行。见this information on inheritance.
你的问题是答案,
号在构造函数的情况下,所获得的或子类隐式调用超的默认构造函数()。 super()表示调用父类的构造函数。因此,当创建子类的对象时,会调用子类的构造函数,该类的第一行是对super()(也称为相应基类的构造函数)的隐式调用。因此,在输出中,父类构造函数在子类构造函数的父类构造函数之前打印。
如果覆盖,只有您在子类中定义的方法在使用子类对象调用时执行,因为我们重写了在父类中定义的方法。
让我们有一些代码, – Saranjith
http://stackoverflow.com/questions/1543191/method-overriding-in-java – emotionlessbananas
我对这个问题感到困惑,但是除非你使用'super'关键字 –