다형성
(Polymorphism)캡슐화
(Encapsulation)추상화
(Abstraction)상속
(Inheritance)internal class Program
{
static void Main(string[] args)
{
Car car1 = new Car();
Car car2 = new Car();
car1.getModel();
car1.handle = "1000";
car1.getHandle();
car2.getModel();
car2.getHandle();
}
}
internal class Car
{
private string model = "DefaultModel";
public string handle = "DefaultHandle";
public void getModel()
{
Console.WriteLine(model);
}
public void getHandle()
{
Console.WriteLine(handle);
}
}
상속 시
internal class CarRenew : Car
형식
protected
로 선언된것은 자식클래스에서 사용 가능
static void Main(string[] args)
{
CarRenew r1 = new CarRenew();
r1.getModel();
r1.handle = "2000";
r1.getHandle();
r1.getA();
}
internal class CarRenew : Car
{
public void getA()
{
Console.WriteLine(a);
}
}
동물
부모클래스 ->소리
메소드(동물소리)
고양이
자식클래스 ->소리
메소드(야옹)
강아지
자식클래스 ->소리
메소드(멍멍)
새
자식클래스 ->소리
메소드(짹짹)
static void Main(string[] args)
{
Animal animal=new Animal();
animal.animalSound();
Dog dog = new Dog();
dog.animalSound();
Cat cat = new Cat();
cat.animalSound();
Bird bird = new Bird();
bird.animalSound();
animal = new Dog();
animal.animalSound();
}
internal class Animal
{
public virtual void animalSound()
{
Console.WriteLine("동물소리");
}
}
internal class Dog : Animal
{
public override void animalSound()
{
Console.WriteLine("멍멍");
}
}
internal class Cat : Animal
{
public override void animalSound()
{
Console.WriteLine("야옹");
}
}
internal class Bird : Animal
{
//public override void animalSound()
//{
// Console.WriteLine("짹짹");
//}
}