Я думаю, что есть действительно два сценария, которые люди принимают здесь, и оба являются законными. Вы действительно можете разбить их на дизайнера базового класса и спустя годы разработчика, который реализует подкласс, который не может изменить базовый класс. Так что да, лучше всего переодеться, если у вас есть эта роскошь. Это чистый подход OOD.
С другой стороны, у вас может быть что-то вроде примера, приведенного выше, где вы находитесь на другом конце этого уравнения, чтобы реализовать подкласс, и вы не можете изменить тот факт, что метод, который вам нужно переопределить, не помечены как надменные. Возьмем, к примеру,
Public Shadows Function Focus() As Boolean
txtSearch.Focus()
Return MyBase.Focus()
End Function
. В этом случае я наследую свой класс из класса управления Winform, который, к сожалению, не отмечен как переопределяемый. На этом этапе я столкнулся с тем, что просто сделал код «чистым» или упростил его понимание. Клиент этого элемента управления просто хочет вызвать control.Focus () и, вероятно, все равно. Я мог бы назвать этот метод FocusSearchText () или Focus2 и т. Д., Но я считаю, что выше код намного проще для клиентского кода. Это правда, что если клиент затем переводит этот элемент управления в качестве базового класса и вызывает фокус, мой код не будет вызывать. Но это довольно отдаленно.
В конце концов, это сводится к решению суда, и вы должны будете сделать.