회원 로그인
|
상속 (with Unity)
상속
- 같은 성질을 가진 여러 클래스들의 공통적인 부분을 재활용하도록 하는 것
[상속의 특징]
1. 공통된 성질을 가진 클래스를 부모(기반) 클래스라고 지칭함
2. 공통된 성질을 물려 받는 클래스를 자식(파생) 클래스라고 지칭함
3. 상속시 기반클래스의 생성자는 파생클래스에서 명시적을 호출해줘야 함
[상속과 접근지정자]
- protected : 상속 상의 클래스들간에만 공유 가능한 접근 지정자
[상속 문법]
public class 기반 클래스 {
protected 멤버들 (변수, 함수)
public 멤버들 (변수, 함수)
}
public class 파생 클래스 : 기반 클래스 {
protected 멤버들 (변수, 함수)
public 멤버들 (변수, 함수)
}
- 같은 성질을 가진 여러 클래스들의 공통적인 부분을 재활용하도록 하는 것
[상속의 특징]
1. 공통된 성질을 가진 클래스를 부모(기반) 클래스라고 지칭함
2. 공통된 성질을 물려 받는 클래스를 자식(파생) 클래스라고 지칭함
3. 상속시 기반클래스의 생성자는 파생클래스에서 명시적을 호출해줘야 함
[상속과 접근지정자]
- protected : 상속 상의 클래스들간에만 공유 가능한 접근 지정자
[상속 문법]
public class 기반 클래스 {
protected 멤버들 (변수, 함수)
public 멤버들 (변수, 함수)
}
public class 파생 클래스 : 기반 클래스 {
protected 멤버들 (변수, 함수)
public 멤버들 (변수, 함수)
}
using UnityEngine; using System.Collections; public class CommonUnit { protected string _name; protected int _hp; protected int _damage; public CommonUnit(string name, int damage) { _name = name; _damage = damage; } public void Move() { Debug.Log("[" + _name + "] 님이 이동을 합니다. "); } public void Attack() { Debug.Log("[" + _name + "] 님이 " + _damage + "만큼의 공격을 합니다. "); } public void Hit(int damage) { Debug.Log("[" + _name + "] 님이 " + damage + " 데미지를 입었습니다. "); } public void Die() { Debug.Log("[" + _name + "] 님이 사망했습니다. "); } } public class Player : CommonUnit { private int _level; private int _gravity; private string _talkMessage; public Player(string name, int damage, string talkMessage) : base(name, damage) { _talkMessage = talkMessage; Debug.Log("[" + _name + "] 님이 접속하였습니다."); Talk(); } public void Talk() { Debug.Log("[" + _name + "] 메시지 : " + _talkMessage); } void Jump() { Debug.Log("[" + _name + "] 님이 점프를했습니다. "); } } public class Monster : CommonUnit { private int _skillType; public Monster(string name, int damage, int skillType) : base(name, damage) { _skillType = skillType; Debug.Log("[" + _name + "] 님이 나타났습니다."); } public void Skill() { Debug.Log("[" + _name + "] 님이 " + _skillType + "타입의 스킬을 사용합니다. "); } } public class Creature : CommonUnit { private int _time; public Creature(string name, int damage, int time) : base(name, damage) { _time = time; Debug.Log("[" + _name + "] 님이 소환 됐습니다."); Timer(); } void Timer() { Debug.Log("[" + _name + "] 님이 " + _time + " 시간뒤에 소멸됩니다."); } }; public class ExtendsStudy : MonoBehaviour { // Use this for initialization void Start() { Player player = new Player("티거", 30, "저는 푸우의 친구 티거입니다!!"); player.Move(); player.Attack(); player.Hit(10); player.Die(); Monster monster = new Monster("오우거", 20, 2); monster.Move(); monster.Attack(); monster.Skill(); monster.Hit(30); monster.Die(); Creature creature = new Creature("멀록", 5, 10); creature.Move(); creature.Attack(); creature.Hit(5); creature.Die(); } // Update is called once per frame void Update() { } }
댓글 0개
| 엮인글 0개
285개(7/15페이지)
번호 | 제목 | 글쓴이 | 조회 | 날짜 |
---|---|---|---|---|
165 | [C#] 네임스페이스 (namespace) | 푸딩뱃살 | 3406 | 2015.11.14 17:34 |
164 | [C#] 인터페이스 (Interface) | 푸딩뱃살 | 2196 | 2015.11.13 18:17 |
163 | [C/C++] Static(정적) 멤버 변수, 메소드 | 푸딩뱃살 | 2474 | 2015.11.13 10:32 |
162 | [C/C++] 추상 클래스 - 오버라이드 / 업/다운캐스팅(형변환) / virtual(가상함수) | 푸딩뱃살 | 4726 | 2015.11.12 02:00 |
161 | [C/C++] 메소드 오버라이드 | 푸딩뱃살 | 1993 | 2015.11.12 01:51 |
>> | [C#] 상속 (with Unity) | 푸딩뱃살 | 5455 | 2015.11.10 16:25 |
159 | [C/C++] 클래스 상속 | 푸딩뱃살 | 2246 | 2015.11.10 14:08 |
158 | [C/C++] 객체 활용 | 푸딩뱃살 | 2472 | 2015.11.09 21:28 |
157 | [C#] C# 객체 클래스 | 푸딩뱃살 | 3568 | 2015.11.08 15:51 |
156 | [C/C++] 생성자 / 소멸자 / 오버로드 | 푸딩뱃살 | 2203 | 2015.11.07 01:23 |
155 | [C/C++] 클래스 선언/정의, 객체 생성 | 푸딩뱃살 | 3568 | 2015.11.06 14:05 |
154 | [C/C++] 로또 프로그램 | 푸딩뱃살 | 2285 | 2015.11.06 12:00 |
153 | [C/C++] 2차원 동적 객체 배열 활용 | 푸딩뱃살 | 3650 | 2015.11.06 00:47 |
152 | [C/C++] 2차원 배열 | 푸딩뱃살 | 2404 | 2015.11.06 00:30 |
151 | [C/C++] 2차원 포인터 | 푸딩뱃살 | 2053 | 2015.11.06 00:26 |
150 | [C/C++] 동적할당 | 푸딩뱃살 | 1806 | 2015.11.05 11:23 |
149 | [C/C++] 당신의 프로그래밍에 디버깅 더하기 : Visual C++ 디버깅 기초에서 고급까지 | 푸딩뱃살 | 1453 | 2015.11.05 11:20 |
148 | [C/C++] 포인터와 배열의 이해 | 푸딩뱃살 | 2014 | 2015.11.04 23:54 |
147 | [C/C++] 포인터 | 푸딩뱃살 | 2195 | 2015.11.04 15:14 |
146 | [C/C++] 일반 함수와 메소드간의 차이 | 푸딩뱃살 | 2432 | 2015.11.03 23:38 |