오버라이드 강제용이라면 그 클래스 안 쓰고
구현하면 어쩔건지 모르겠다.
애초에 필요한 기능을 여러 개 담는 인터페이스와
비교해봤을 때 메서드밖에 없고 일부를 반드시 재구현
해줘야한다는거. 정말 필요하지만 까다로운 제약이 있는
그러한 클래스의 제대로 된 예시가 궁금하다
뭐 동믈과 포유류 이딴거 말고
구현하면 어쩔건지 모르겠다.
애초에 필요한 기능을 여러 개 담는 인터페이스와
비교해봤을 때 메서드밖에 없고 일부를 반드시 재구현
해줘야한다는거. 정말 필요하지만 까다로운 제약이 있는
그러한 클래스의 제대로 된 예시가 궁금하다
뭐 동믈과 포유류 이딴거 말고
도형 -> 선, 원, 사각형 -> {직선, 곡선}, {타원}, {직사각형, 정사각형, 마름모} 이런걸 말하는건가?
가져다 쓰되 반드시 구현해줘야하는 것 근데 추상은 뭔 데이터를 강제하는건 아니니 뭐랄까 인터페이스랑 비교해서 안 쓰면 그만 아닌가? 하는 생각도 드는데 추상클래스는 가져다쓰면 좋을만큼 메서드랑 수준이 동일하지 않은거야?
살짝 질문이 이해가안가는데 이건 GUI이런데에서 실제로 쓰이는 구조의 간단한 형태거든
화면에 내가 보유한 다양한 도형을 그리고 싶다? 그럼 vector<도형>& shape받아서 shape.draw()해주면 끝인게 다형성의 장점
반복문 돌리면서
그런데 shape라는 추상적인 뭔가를 생각하기보다 그냥 draw라는 추상적인 메서드를 상상하는게 더 직관적이지 않음? 그리고 자바는 추상메서드에서 데이터 형식을 강제하지 않잖아. 프로그래머가 다양한 도형 그리기를 구현할 때 알아서 shape란 표준을 빌려쓰길 기대하는거임?
혹시 장래희망이 객체아티스트신가요
동적 바인딩 빡대가리야
오직 그거때문에 쓸거 같은데 문제는 개념 잡는데 도움 좀 줘야할 것 같아 어떨 때 유용한지 감이 잘 안 잡힘
추상클래스 animal 객체가 있고 파생으로 닭 오리가 있다치자. walk 메소드가 았어 동물별로 달라. 객체들 관리는 animal ptr로 관리하고 그냥 사용하면된다.
이게 추상 클래스가 아니고 가상함수, 함수포인터 다 안쓰고 한다 생각해봐라 유지보수 성능 가독성 뭐하나 좋을게 없다
어떤객체가 하는일은 로컬소스코드를 지향해야지 다른객체 전역변수 전역함수 넘나들면 유지보수 지옥이겠냐 아니겠냐
확장성도 있지만 추상클래스 만들어 , 객체 쓰면 그거 사용하면 머리 덜굴려도되고 스파게티될 가능성도 줄어든다.
근데 인터페이스도 틀을 상속받는거니 그런 측면은 셈셈 아닌가 싶기도 한데. 어차피 인터페이스 상속받은 시점부터 그 자식들도 모두 ... 아 모르겠네 강제한다는 것 나름의 장점도 있는데 명확하게 정리를 못하겠음
추상이나 인터페이스나 상속받은건 싸게싸게 구현해야한다는 점에서 강제성의 차이는 모호한데.
아 인테페이스는 추상만 상속 가능하구나 자바에서 동적바인딩이야 상속의 공통점이고 ...