1) OnCreate는 ClsLast 클래스의 인스턴스화 된 객체의 public 메서드입니다. 그러나 OnCreate 메서드를 보호 된으로 제한하려고했습니다. Illegal modifier for the interface method OnCreate; only public & abstract are permitted
객체 지향 인터페이스, 추상 클래스 및 콘크리트 클래스에 대한 질문
3) 나는 보호 설정 한 경우 :
interface InterFace {
protected void OnCreate();
}
내가지고있어 오류가이 같은 인터페이스에서 보호 나는이 방법을 한 OnCreate 설정하면
interface InterFace {
void OnCreate();
}
class ClsFirst implements InterFace {
@Override
public void OnCreate() { }
}
class ClsLast extends ClsFirst{ }
class Test {
static void main(){
ClsLast objClsAct = new ClsLast();
objClsAct.OnCreate();
}
}
2) 메서드는 다음과 같이 InterFace를 구현하는 ClsFirst 클래스 내에 있습니다.
Cannot reduce the visibility of the inherited method from InterFace
4) 나는 추상 클래스로 ClsFirst을 변경하고 구현하는 인터페이스로 나는 안에 방법을 한 OnCreate 구현하지 않은
interface InterFace {
void OnCreate();
}
abstract class ClsFirst implements InterFace {
}
:
interface InterFace {
void OnCreate();
}
class ClsFirst implements InterFace {
@Override
protected void OnCreate() { }
}
이 오류를 받고 있어요 ClsFirst 클래스이지만 ClsLast 이유는 무엇입니까?
요약 내가 인터페이스 방법을 설정할 수 있습니다 만 파생 클래스에서 사용할 수있는 방법
- ?
- Interface 내에서 보호 된 액세스로 메소드를 설정할 수없는 이유는 무엇입니까?
- 왜 InterFace를 구현 한 후에 클래스의 접근 자 유형을 public과 다르게 설정할 수 있습니까?
- 추상 클래스는 인터페이스를 구현하더라도 추상화 된 클래스를 파생시킬 때까지 구현되지 않은 메서드 자체를 추가 할 필요가없는 추상 클래스입니다. 왜?
지금부터 친절한 답변을 해주셔서 감사합니다.
인터페이스를 구현하는 것이 어떤 상황이라고 생각하지만 파생 클래스에만 액세스를 제한하는 것이 합리적인지 설명 할 수 있습니까? 파생 클래스 만 메소드를 볼 수 있다면 인터페이스가 필요한 이유는 무엇입니까? – dtb
클래스 구조 만들기의 초기 단계부터 인터페이스를 만들고 규칙을 작성하려고합니다. 그러나 이것을 시도하는 동안 나는 다른 질문에 직면했다. 당신의 대답으로 나와 나와 모든 사람들을위한 OOP에 대한 좋은 정보가있을 것이라고 생각했다. 그러나 나의 첫 번째 욕망은 규칙을 작성하고 인터페이스와 추상 클래스를 사용하여 훌륭한 클래스 구조를 만드는 것이다. – uzay95
OOP의 한 가지 점은 개발자가 적합하다고 생각하는 클래스의 비공개 부분을 자유롭게 디자인 할 수 있다는 것입니다.클래스 구조의 공용 부분에만 규칙을 넣을 수 있습니다. – dtb