2011-08-31 4 views
0

아래와 같이 추상 클래스를 만들 수 있습니까?추상적 인 클래스에서 개인 최종 필드를 가질 수 있습니까?

abstract class A{ 
private final String foo; 
private final String too; 

public A(final String foo, final String too) { 
    this.foo= foo; 
    this.too= too; 
} 
public String getfoo(){ 
     return foo; 
    } 
public String gettoo(){ 
     return too; 
    } 
} 
+3

시도하면 어떻게됩니까? 왜 그것이 가능하지 않을 수도 있다고 생각합니까? –

+1

왜 안 되니? 당신이 물어보고 싶은 특정 질문이 있습니까? –

답변

-1

예 물론 가능합니다. 그러나이 클래스의 한 객체를 작성할 수 없기 때문에 좋은 방법은 아닙니다. 중요한 점은 내부에 추상 함수를 정의하지 않았기 때문에이 유형의 클래스를 필요로하지 않는다는 것입니다. 그러나 귀하의 질문에 따라이 유형의 추상 클래스를 확실히 만들 수 있습니다.

7

짧은 : 예.

Long (어) : 추상 클래스는 부품이 여전히 누락 될 수 있으므로 인스턴스화 할 수없는 클래스입니다. 따라서 나는 개인 필드를 가질 수 있습니다. getters/setter를 통하는 경우를 제외하고는 하위 클래스에 액세스 할 수 없습니다.

0

예. 가능합니다.

그들을 protected 대신 즉 당신의 서브 클래스가 필드에 직접 액세스 할 수 있도록,이 클래스를 확장하는 사람 ..

1

귀하의 코드가 올 수 있도록 개인의 만들 수있는 가능성을 고려하십시오.
참고 : 추상 클래스의 좋은 연습은 보호 된 생성자이며 beacuse 클래스 자체는 인스턴스화 할 수 없으며 상속하는 클래스는 super(...) 생성자를 호출해야합니다.

+0

'좋은 습관'에 대해 - 그렇게 말하십니까? http://stackoverflow.com/a/260779/3712268 – pawpaw

관련 문제