회원 로그인
정보기억 정보기억에 체크할 경우 다음접속시 아이디와 패스워드를 입력하지 않으셔도 됩니다.
그러나, 개인PC가 아닐 경우 타인이 로그인할 수 있습니다.
PC를 여러사람이 사용하는 공공장소에서는 체크하지 마세요.
소셜네트워크 서비스를 통해서 로그인하시면 별도의 로그인 절차없이 회원서비스를 이용하실 수 있습니다.


최근 게시물

1.노션에서 작성 중

1.노션에서 작성 중

개편하기 전까지 노션에서 작성 중

2024.04.04//read more

2.ChatGPT

2.ChatGPT

OpenAI로 대규모 언어 모델대화형...

2023.03.16//read more

3.노코딩 게임 엔진 - 빌..

3.노코딩 게임 엔진 - 빌..

빌드 지원안드로이드iOS윈도우즈특이사...

2023.03.14//read more

4.(완료) 미접속 회원 정..

4.(완료) 미접속 회원 정..

[완료] 36명의 회원을 정리하였습니...

2023.02.16//read more

5.매뉴얼 플러스 - 전자제..



안정적인 DNS 서비스 DNSEver
DNS Powered by DNSEver.com


상속 (with Unity)

푸딩뱃살 | 2015.11.10 16:25 | 조회 5454
상속
- 같은 성질을 가진 여러 클래스들의 공통적인 부분을 재활용하도록 하는 것

[상속의 특징]
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()
    {
    
    }
}
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