지금 내가 짠 게 대충 이렇거든
class 상위클래스
{
public 상위클래스()
{
메소드1();
메소드2();
}
void 메소드1()
{
blah blah~
}
void 메소드2()
{
blah blah~
}
}
class 하위클래스 extends 상위클래스
{
public 하위클래스()
{
}
@Override
void 메소드1()
{
super.메소드1;
하위클래스만의 기능1;
}
@Override
void 메소드2()
{
super.메소드2;
하위클래스만의 기능2;
}
}
아 진짜 엉망이네요
여튼 제가 하고 싶은 게
상위 클래스의 object를 생성했을 땐 그 기능만 실행하고 (이건 지금 잘됨)
하위 클래스의 object를 생성했을 땐 상위 클래스의 기능 + 하위 클래스만의 기능이 실행되게 하고 싶은데
하위 클래스 기능만 실행되고 종료되버림..
그래서 질문의 요지
super 키워드의 적절한 삽입 위치가 어디죠?
상위 클래스 생성자에서 overridden된 메소드 호출을 했는데
이러면 하위 클래스에 있는 메소드가 호출되는 거죠? 어떻게 하면 덮어씌워진 상위 클래스의 메소드를 호출하나요..
this로 불러도 안되는 것 같은데..
여긴 자바하는놈도 없나. 하위클래스에서 상위클래스 기능을 끌어다 쓰고싶으면 super.뭐 해서 메소드를 쓰면 되잖아하위에서. 애시당초 메소드를 만들 때 부터 그렇게 만들라고. 그게아니라 하위클래스에서 오버라이드해서 메소드를 만든게아니라 따로 만들어놓고 그냥 순수하게 상위클래스 메소드를 쓰고싶다는거냐?