Ваш AMPMClock
должен либо просто расширить Clock
, либо просто использовать его.Но вы пытаетесь объединить их обоих следующим образом:
class AMPMClock extends Clock {
Clock clock2 = new Clock();
Любое расширение:
class AMPMClock extends Clock {
Поскольку методы общедоступного доступа наследуются, вы можете вызывать методы getter / setter для this
.например, this.getHour()
.
Или используйте его, но не расширяйте:
class AMPMClock {
Clock clock2 = new Clock();
Здесь вместо this
используйте clock2
.например, clock2.getHour()
.
Но вы должны сделать все члены экземпляра приватными (они не должны быть публичными).И сделайте соответствующие публичные методы получения / установки для всех них.
Как предложено dasblinkenlight:
Было бы лучше иметь абстрактный класс:
public abstract class BaseClock {
private int h, m, s;
//getter/setter
}
И дваразличные конкретные классы:
public class TwelveHourClock extends BaseClock { }
и
public class TwentyFourHourClock extends BaseClock { }