2019-10-17 19일차 클래스의 상속 (2) + get, set 사용

Console Programming/C# Console 2019. 10. 17. 14:46

Mamal 클래스

----------------------

name

age

----------------------

Cry( )

----------------------

 

 

Cat : Mamal

----------------------

야옹하고 운다

Dog : Mamal

----------------------

멍멍하고 운다

 

 

Mamal클래스의 멤버필드를 private로 설정하고 get; set;을 이용해서 데이터에 접근한다.

 

Cat, Dog는 Mamal을 상속하므로 각자 Cry( ) 메서드를 재정의 해서 사용할 수 있다.

 

 

 

 

 

Program.cs

namespace Syntax04
{
    class Program
    {
        static void Main(string[] args)
        {
            new App();
        }
    }
}

App.cs

using System;
namespace Syntax04
{
    public class App
    {
        public App()
        {
            var cat1 = new Cat();
            cat1.Name = "치즈태비 고양이";
            cat1.Age = 4;
            Console.WriteLine($"cat1의 나이:{cat1.Age}");

            var dog1 = new Dog();
            dog1.Name = "레브라도 리트리버";
            dog1.Age = -5;
            Console.WriteLine($"dog1의 나이:{dog1.Age}");

            cat1.Cry();
            dog1.Cry();

        }
    }
}

 

Mamal.cs

using System;

namespace Syntax04
{
    public class Mamal
    {
        public string Name { get; set; }
        private int age;
        public int Age
        {
            get
            {
                return age;
            }

            set
            {
                if (value < 0)
                {
                    Console.WriteLine("나이는 음수가 될 수 없습니다.");
                }
                else
                    this.age = value;

            }
        }

        public  Mamal()
        {

        }
        public virtual void Cry()
        {

        }

    }
}

 

Cat.cs

using System;

namespace Syntax04
{
    public class Cat : Mamal
    {
        public override void Cry()
        {
            Console.WriteLine($"{this.Name}가 야옹 하고 웁니다.");

        }
    }
}

 

Dog.cs

using System;

namespace Syntax04
{
    public class Dog : Mamal
    {
        public override void Cry()
        {
            Console.WriteLine($"{this.Name}가 멍멍 하고 웁니다.");

        }
    }
}

 

 

: