C#/이것이 C#이닀

45. μΆ”μƒν΄λž˜μŠ€μ˜ ν”„λ‘œνΌν‹°

Rainbow🌈Coder 2022. 2. 24. 11:18
728x90

μΆ”μƒν΄λž˜μŠ€λŠ” 클래슀처럼 κ΅¬ν˜„λœ ν”„λ‘œνΌν‹°λ₯Ό κ°€μ§ˆ 수 μžˆλŠ” ν•œνŽΈ,

μΈν„°νŽ˜μ΄μŠ€μ²˜λŸΌ κ΅¬ν˜„λ˜μ§€ μ•Šμ€ ν”„λ‘œνΌν‹°λ„ κ°€μ§ˆ 수 μžˆλ‹€.(좔상 ν”„λ‘œνΌν‹°)

좔상 ν”„λ‘œνΌν‹° μ—­μ‹œ μΈν„°νŽ˜μ΄μŠ€μ˜ ν”„λ‘œνΌν‹°μ™€ λ‹€λ₯Ό 것이 μ—†λ‹€.(νŒŒμƒ ν΄λž˜μŠ€κ°€ ν•΄λ‹Ή ν”„λ‘œνΌν‹°λ₯Ό κ΅¬ν˜„ν•˜λ„λ‘ κ°•μ œ)

 

좔상 클래슀의 좔상 ν”„λ‘œνΌν‹°λŠ” μΈν„°νŽ˜μ΄μŠ€μ²˜λŸΌ κ΅¬ν˜„μ„ λΉ„μ›Œλ†“μ€ 것 λ§ŒμœΌλ‘œλŠ” λ§Œλ“€ 수 μ—†λ‹€.(C# μ»΄νŒŒμΌλŸ¬κ°€ μžλ™ κ΅¬ν˜„ ν”„λ‘œνΌν‹°λ‘œ κ°„μ£Όν•˜κ³  κ΅¬ν˜„μ„ μžλ™μœΌλ‘œ μ±„μ›Œ λ„£μœΌλ―€λ‘œ...

좔상 ν”„λ‘œνΌν‹°λŠ” λ‹€μŒκ³Ό 같이 abstract ν•œμ •μžλ₯Ό μ΄μš©ν•΄ μ„ μ–Έν•œλ‹€!

abstract class μΆ”μƒν΄λž˜μŠ€μ΄λ¦„

{

     abstract λ°μ΄ν„°ν˜•μ‹ ν”„λ‘œνΌν‹°μ΄λ¦„

     {

          get;

          set;

     }

}

 

좔상 ν”„λ‘œνΌν‹°λ₯Ό κ°–λŠ” 좔상 ν΄λž˜μŠ€μ™€ 이λ₯Ό μƒμ†ν•˜λŠ” νŒŒμƒ 클래슀 예제 μ½”λ“œ

abstract class Product

{

     private static int serial = 0;

     public string SerialID //좔상 ν΄λž˜μŠ€λŠ” κ΅¬ν˜„μ„ κ°€μ§„ ν”„λ‘œνΌν‹°μ™€

     {

          get{ return String.Format("{0:d5}", serial++); }

     }

 

     abstract public DateTime ProductDate //κ΅¬ν˜„μ΄ μ—†λŠ” 좔상 ν”„λ‘œνΌν‹° λͺ¨λ‘λ₯Ό κ°€μ§ˆ 수 μžˆλ‹€

     {

          get;

          set;

     }

}

 

class MyProduct : Product

{

     public override DateTime ProductDate//νŒŒμƒν΄λž˜μŠ€λŠ” κΈ°λ°˜μΆ”μƒν΄λž˜μŠ€μ˜ λͺ¨λ“  μΆ”μƒλ©”μ†Œλ“œν”„λ‘œνΌν‹° μž¬μ •μ˜ν•΄μ•Όν•¨

     {

          get;

          set;

     }

}

 

<예제>

using System;

namespace PropertiesInAbstractClass
{
    abstract class Product
    {
        private static int serial = 0;
        public string SerialID
        {
            get { return String.Format("{0:d5}",serial++); }
        }
        abstract public DateTime ProductDate
        {
            get;
            set;
        }
    }

    class MyProduct : Product
    {
        public override DateTime ProductDate
        {
            get;
            set;
        }
    }

    class MainApp
    {
        static void Main(string[] args)
        {
            Product product_1 = new MyProduct()
            {
                ProductDate = new DateTime(2022,02,24)
            };
            Console.WriteLine($"Product:{product_1.SerialID}, Product Date : {product_1.ProductDate}");
            Product product_2 = new MyProduct()
            {
                ProductDate = new DateTime(2022, 02, 25)
            };
            Console.WriteLine($"Product:{product_2.SerialID}, Product Date : {product_2.ProductDate}");
        }
    }
}

<좜λ ₯>

Product:00000, Product Date : 2022-02-24 μ˜€μ „ 12:00:00
Product:00001, Product Date : 2022-02-25 μ˜€μ „ 12:00:00
728x90