2012-03-11 2 views
3

나는 다음과 같은 코드를 한 :추상 클래스 : Single 생성자, 접근 수정 자?

public abstract class Foo 
{ 
    protected Foo() 
} 

는 액세스 수정 또는 공용으로 보호 사용 사이의 상속에 어떤 차이가 있나요?

대부분이 경우 보호를 사용하여 보았습니다. 차이점은 무엇입니까? 사람들이 공개적으로 보호 조치를 취한 이유는 무엇입니까?

답변

5

이 차이를 만들 것 (그리고 반사 감지 것)하지만 본질적으로는 동일한있어 미묘한 상황이 될 수있다. 아마 을 명확하게 만들면 protected이됩니다. 파생 클래스의 생성자가 아닌 다른 호출을 실제로 할 수 없기 때문입니다.

2

하나의 차이점은 클래스를 직렬화하려는 경우 기본 public 생성자 (기본값은 생성자가 인수를 사용하지 않음을 의미)를 가져야한다는 것입니다. 그렇지 않으면, 존 (Jon)과 같이 그 차이는 경미하다고합니다.

+0

이 질문은 제가 작성한 응용 프로그램에서 중요한 역할을합니다. 흥미로운 점 감사합니다! – kamahl