1-4장

2022. 4. 14. 15:48C#/C#에 대한 다양한 공부

인터페이스

using System;

namespace study
{    
    interface Ibird
    {
        void Fly();
    }

    class Duck : Ibird
    {
        public void Fly()
        {
            Console.WriteLine("Duck Fly");
        }
    }

    class Goose : Ibird
    {
        public void Fly()
        {
            Console.WriteLine("Goose Fly");
        }
    }
}

클래스 형변환 implicit, explicit

using System;

namespace study
{
    class MassUnit
    {
        double mass;

        public double Mass
        {
            get { return mass; }
            set { mass = value; }
        }

        public MassUnit(double mass)
        {
            this.mass = mass;
        }
    }
    
    class Kilogram : MassUnit
    {
        public Kilogram(double mass) : base(mass) { }
        public override string ToString()
        {
            return Mass + "kg";
        }
        static public implicit operator Gram(Kilogram kilogram) //암시적
        {
            return new Gram(kilogram.Mass);
        }
    }
    
    class Gram : MassUnit
    {
        public Gram(double mass) : base(mass) { }
        public override string ToString()
        {
            return Mass + "g";
        }
        static public explicit operator Kilogram(Gram gram) //명시적
        {
            return new Kilogram(gram.Mass);
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Kilogram kilogram = new Kilogram(10); //10kg
            Gram gram = new Gram(5); //5g
            Kilogram kilogram1 = (Kilogram)gram; // 5kg
            Gram gram1 = kilogram; //10g

        }
    }
}

 

'C# > C#에 대한 다양한 공부' 카테고리의 다른 글

델리게이트, 이벤트  (0) 2022.06.01
추상클래스, 인터페이스 연습용  (0) 2022.05.24
델리게이트와 이벤트를 활용한 콜벡메서드 예제  (0) 2022.05.24
11-15장  (0) 2022.04.18
5-10장  (0) 2022.04.18