2016. 2. 26. 17:36
https://blog.naver.com/nagne2011/220639062533
namespace ConsoleApplication4
{
//추상 클래스
abstract class Gun
{
public int damage = 1;
public int ammo = 5;
//추상함수 , C++에서 virtual 이라고 쓰던것. virtual 선언한 함수는 꼭 사용해야 한다
public abstract void Fire(); //함수에 사용하면, class에도 abstract를 붙여줘야 한다(오류가 뜸)
}
}
namespace ConsoleApplication4
{
//추상 클래스
abstract class Gun
{
public int damage = 1;
public int ammo = 5;
//추상함수 , C++에서 virtual 이라고 쓰던것. virtual 선언한 함수는 꼭 사용해야 한다
public abstract void Fire(); //함수에 사용하면, class에도 abstract를 붙여줘야 한다(오류가 뜸)
}
}
namespace ConsoleApplication4
{
//인터페이스
/// <summary>
/// 변수를 가질 수 없고 함수만 가질 수 있다.
/// 그러나 함수의 구현은 없다
/// 만들어진 함수는 무조건 public이다
///
/// </summary>
interface iReload
{
public void Reload();
}
}
namespace ConsoleApplication4
{
class Pistol : Gun, iReload, Iaim, Iscope
{//추상함수를 상속받으니까 함수를 만들어줘야함
//단, override한다고 표시를 해줘야함
public override void Fire()
{
ammo -= 1;
Console.WriteLine("탕");
}
public void Reload()
{
ammo = 10;
Console.WriteLine("재장전");
}
public void Aim()
{
//화면키우기
Console.WriteLine("크게보임");
}
public void Iscope.Aim()
{
//조준경으로 보기
Console.WriteLine("조준경으로 보기");
}
public virtual void FastFire() //이 클래스를 상속받아 이 함수를 재정의 할 일이 있으면 virtual처리
{
ammo -= 5;
Console.WriteLine("탕탕탕탕탕");
}
}
}
namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
Pistol pt = new Pistol();
pt.Fire();
Console.ReadLine();
}
}
}
728x90