Итак, у меня есть abstract class Worker
, который имеет абстрактную функцию computePay
.
Двумя классами этого класса являются HourlyWorker
и FixedWorker
,
Теперь я обеспечил реализацию computePay
в обоих этих классах. Теперь мой код говорит
Worker[] w=new worker[2];
w[0]=new HourlyWorker;
w[1]=new FixedWorker;
теперь, когда я говорю w[0].computePay
как я уверен, что вызывается computePay,
я знаю, что будет назван тот из дочернего класса, но какой?
т.е.
Если оба моих дочерних класса имеют различную реализацию функции computePay
,
следующий код даст мне желаемый результат?
w[0].computePay //Prints the pay as per the implementation in HourlyWorker;
w[1].computePay //Prints the pay as per the implementation in FixedWorker;
Также я слышал об операторе / ключевом слове instance of
, но я не знаю, будет ли оно здесь полезным?