본문 바로가기

override4

[C++] final 키워드 1. final - 상속을 방지하는 키워드 - 더 이상 가상함수를 오버라이딩하지 않겠다는 의미 - 가상함수의 마지막을 가르키는 키워드 - 클래스와 멤버함수 둘 다 사용 가능 - override와 같은 자리에 쓰임 2. 예시 #include using namespacee std; class A { public: virtual void print() { cout 2023. 10. 18.
[C#][Study][기초다지기] 다형성 다형성 1) 정적 다형성(컴파일 다형성) - 컴파일 시간동안 함수를 객체와 바인딩 - 프로그램을 작성하는 동안 객체로 함수에 태그를 지정(초기 바인딩) - 함수 오버로딩이 해당 2) 동적 다형성(런타임 다형성) - 후기 바인딩(Late Binding), 메서드 재정의(Method Override) 라고도 함 - virtual 또는 override 키워드를 사용해 기본 클래스 함수를 재정의 함 3) 오버로딩 - 매개변수에 따라 함수가 다르게 동작 4) 오버라이딩 - 이름과 매개변수, 리턴형이 모두 같지만 다른 동작을 하는 것을 의미 2023. 9. 23.
[C#][Study][기초다지기] 추상 함수 abstract 추상 함수 - abstract - 기본 클래스가 해당 특징을 가진다는 것을 '명시'하기위해 구현 - abstract 키워드를 사용해 생성되었지만, 본문 내에서 구현하는 것은 따로 없음 - 추상 클래스에서 정의된 추상함수는 본 함수를 상속받은 하위 클래스들에서 '반드시' 재정의(override) 되어야한다. - 클래스 내부에 abstract를 사용한 키워드가 있는 경우, 반드시 클래스에도 abstract 키워드를 사용해서 정의해야 한다. - abstract 클래스는 인스터화 할 수 없음(new 키워드로 생성 불가) [ex] using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Thre.. 2023. 9. 23.
[개발더미][Unity] 추상 클래스 using System.Collections; using System.Collections.Generic; using UnityEngine; // 추상 클래스를 사용한 이유 // 1. 설계도 역할 -> 몬스터와 플레이어의 공통 특성을 파악(추상화) // 2. 캡슐화 -> 변수를 드러나지 않게 함(데이터 보호) // 3. 상속 -> 중복 코드 최소화 // 4. 다형성 -> 오버라이드 사용 public abstract class CommonProperties : MonoBehaviour { protected enum State { Idle, Move, Attack, Dead } [SerializeField] protected State myState; protected abstract void ChangeS.. 2023. 7. 24.