override 에 대한 질문입니다.

제가 아는 수준의 override 인 경우

해당 인터페이스나 추상클래스의 메소드를
구현하고자 하는 클래스에서
override 키워드를 이용해 메소드명 , 파라미터 등을 동일하게
정의/구현 하는 것으로 아는데요
인터페이스/추상클래스 의 메소드는 abstract 로 선언되있구요

그런데 해당 추상클래스의 메소드는 virtual 로만 되있습니다.
거기에 정의 등 소스가 많이 있습니다.

1개의 좋아요

질문하시고자 하는 내용이 어떤 건가요??

2개의 좋아요
  • virtual은 sub class가 override 구현하지 않더라도 동작할 수 있도록 기본 구현을 할 수 있도록 합니다.
  • abstract는 sub class가 반드시 override 구현을 해야 하도록 합니다. 본체에는 구현체가 없습니다.
  • override를 하게 되면 해당 기능을 재정의 하게 됩니다. 재정의 해서 얻는 이점은 super class가 이미 구현한 내용을 재활용할 수 있고 변경할 수 있다는 점입니다.
7개의 좋아요

안녕하세요. 질문을 올려주시는 점은 감사하지만, 포럼에서 답글을 남겨주시는 분들이 질문 글에 답해야 하는 것은 의무가 아닙니다. 그러므로, 질문을 올려주실 때에는 명확하게 올려주실 것을 부탁드립니다.

감사합니다.

5개의 좋아요

요렇게 설명하는 글도 있네요.

abstract-메소드와-virtual-메소드-차이점 링크

4개의 좋아요