Перейти к контенту

Переопределение приватного или статического метода в Java

Нет, мы не можем переопределить частные или статические методы в Java.

Закрытые методы в Java не видны никакому другому классу, который ограничивает их область действия классом, в котором они объявлены.

 

Давайте посмотрим, что происходит, когда мы пытаемся переопределить закрытый метод —

Пример

class Parent {
   private void display() {
      System.out.println("Super class");    
   }
}
public class Example extends Parent {
   void display() // trying to override display() {
      System.out.println("Sub class");
   }
   public static void main(String[] args) {
      Parent obj = new Example();
      obj.display();
   }
}

Выход выглядит следующим образом —

Example.java:17: error: display() has private access in Parent
obj.method();
      ^
1 error

Программа выдает ошибку времени компиляции, показывая, что display() имеет частный доступ в родительском классе и, следовательно, не может быть переопределен в примере подкласса.

Если метод объявлен как статический, он является членом класса, а не принадлежит объекту класса. Он может быть вызван без создания объекта класса. Статический метод также имеет право доступа к статическим данным-членам класса.

Давайте посмотрим, что происходит, когда мы пытаемся переопределить статический метод в подклассе

Пример переопределения статического метода в подклассе

class Parent {
   static void display() {
      System.out.println("Super class");    
   }
}
public class Example extends Parent {
   void display() // trying to override display() {
      System.out.println("Sub class");
   }
   public static void main(String[] args) {
      Parent obj = new Example();
      obj.display();
   }
}

Это приводит к ошибке времени компиляции. Выход выглядит следующим образом —

Example.java:10: error: display() in Example cannot override display() in Parent
void display() // trying to override display()
    ^
overridden method is static
1 error

Оцени статью

Средняя оценка / 5. Количество голосов:

Спасибо, помогите другим - напишите комментарий, добавьте информации к статье.

Или поделись статьей

Видим, что вы не нашли ответ на свой вопрос.

Помогите улучшить статью.

 

Пока нет комментариев.

Добавить комментарий

Ваш e-mail не будет опубликован.

СайдбарКомментарии (0)