제가 이해하는 한, 개인적인 방법과 최종 방법은 같습니다. Java 컴파일러는 컴파일 타임에 개인 메소드의 의미를 결정합니다. 개인 메소드 나 최종 메소드는 런타임에 수정할 수 없으며 어느 메소드도 대체 할 수 없습니다. 이러한 유사점은 개인적으로 보이게하고 최종 방법은 동일합니다. 사실입니까?우리는 개인적인 방법을 사용할 수 있으며 최종 방법은 동일합니다
-4
A
답변
2
개인 방법은 자동으로 최종 파생 클래스에서 숨겨져 있습니다. 최종 클래스는 파생 클래스에서 숨겨지지 않습니다. 따라서 당신은 개인 방법 등
class test {
private void works {
}
}
class tester extends test {
private void works {
}
}
와 같은 이름으로 새 클래스를 만들 수 있지만 마지막 방법
/*----------Doesn't Work------------*/
class test {
final void dWorks {
}
}
class tester extends test {
final void dWorks {
}
}
예와 같은 이름으로 새 클래스를 만들고 여기에 대답 할 수 : http://www.linuxtopia.org/online_books/programming_books/thinking_in_java/TIJ309_006.htm
2
는 다음과 같은 예를 생각해보십시오 :이 foo()
방법을 가지고 아무 문제가 없습니다
class Super {
private void foo(){}
final void bar(){}
}
class Sub extends Super {
private void foo(){}
final void bar(){}
}
을하지만, bar()
방법을 컴파일하려고 할 때 컴파일 문제를 얻을 것이다. bar()
메서드를 재정의 할 수 없기 때문에 foo()
메서드는 표시되지 않으므로 재정의가 발생하지 않습니다.
당신은 여기에서 더 답변을 볼 수 Overriding private methods in Java
http://www.coderanch.com/t/404696/jifa-java/Difference-Private-Final – AntonH
투표를 포기하지 마세요 .. 제발 둘 다 동일하지 않습니까? – Mdhar9e
아니요, 그들은 같지 않습니다. 내가 제공 한 링크는 설명 할 수있는 구체적인 예를 제공합니다. – AntonH