C# 강좌 Day-14 (abstract, interface)
Unity3D/C# 2021. 8. 15. 22:19https://youtu.be/edyBXI9lL9U?list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z
https://youtu.be/UrOYtghn21Y?list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z
abstract 키워드
추상 클래스 선언및 메서드에서 사용된다
추상 클래스는 인스턴화 되지 않고 추상클래스를 상속 받은 자식 클래스는 부모클래스에서 선언된 메서드를 반드시 구현 해야 한다
추상 클래스 선언
using System;
public abstract class Unit
{
public string name;
public Unit(string name)
{
this.name = name;
Console.WriteLine("Unit 클래스의 생성자");
}
public abstract void Move();
}
using System;
public class Marine : Unit
{
public Marine(string name): base(name)
{
Console.WriteLine("{0}이(가) 생성되었습니다.", this.name);
}
public override void Move()
{
Console.WriteLine("{0}이(가) 이동합니다.", this.name);
}
}
using System;
class Program
{
static void Main(string[] args)
{
Marine marine = new Marine("마린1");
marine.Move();
}
}
abstract 메서드에 virtual 키워드를 사용할수 없다
interface
인터페이스 선언시 I를 붙여주는것이 관례
구현 되어 있지 않은 메서드들의 정의만을 포함한다
인스턴스화 될수 없다
이는 클래스에서 상속 받아 구현할수 있다
추상 클래스와 차이점은 다중 상속이 가능하다는점이다
인터페이스에 선언된 메서드에 제한자가 없다 하더라도 public 추상 메서드라고 생각하면 된다
인터페이스 정의및 상속
interface IZerg
{
void Transformation();
void Burrow();
}
using System;
public class Hydralisk : IZerg
{
public Hydralisk()
{
}
public void Burrow()
{
}
public void Transformation()
{
}
}
인터페이스를 다중상속하기
다중 상속시 , 를 찍어 인터페이스를 적어준다
interface IZerg
{
void Transformation();
void Burrow();
}
interface IRecoveryHp
{
void RecoverHp();
}
using System;
public class Hydralisk : IZerg, IRecoveryHp
{
public Hydralisk()
{
}
public void Burrow()
{
//땅속에 숨기
}
public void Transformation()
{
//변환
}
public void RecoverHp()
{
//체력 회복
}
}
'Unity3D > C#' 카테고리의 다른 글
C# 강좌 Day-16 배열, foreach (0) | 2021.08.30 |
---|---|
C# 강좌 Day-15 (속성) (0) | 2021.08.15 |
C# 강좌 Day-13 (class, struct) (0) | 2021.08.15 |
C# 강좌 Day-12 (method, ref, out) (0) | 2021.08.15 |
C# 강좌 Day-11 (for, break, continue, while) (0) | 2021.08.15 |