У меня есть следующий код:Почему более слабые переопределенные функции не разрешены в Java?
public class Library {
public void myFunction() {
// do something
}
}
public class Book extends Library{
protected void myFunction() { // Error here
// do something
}
}
Приведенные выше код имеет ошибку, потому что класс Книги пытается переопределить функцию класса ужина с более слабым модификатором доступа. Я знаю, что это правило Java. Но мне любопытно, почему? Какая проблема может возникнуть?
Это не правило «Объектно-ориентированный язык». Это не имеет никакого отношения к OO. Элементарным принципом является то, что первоначально указанная безопасность не должна быть обратимой. – EJP
что отличает принцип и правило? –
Как сказал EJP, он не имеет ничего общего с объектной ориентацией. Кроме того, как говорит pst, в C# можно сделать что-то подобное, используя «новое» ключевое слово. И C# также объектно-ориентирован. – Christian