본문 바로가기

   
Programming/C#

오버라이딩

반응형

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace Test

{

       class Overriding03

       {

             static void Main(string[] args)

             {

                    Time t1 = new Time(5, 20);

                    Console.WriteLine(t1.GetTime());

 

                    DateTime t2 = DateTime.Now;

 

                    //원형 Console.WriteLine(t2.ToString()) 내부적으로 ToString을 강제 호출한다.

                    Console.WriteLine(t2);

                    Console.WriteLine(t1);

 

                    //System.Object 클래스의 메서드 : ToString()

                    // -> 현재 자료형의 이름을 string형으로 반환해주는 것

 

                    MyRandom rnd = new MyRandom();

                    Console.WriteLine(rnd.Next());

 

             }

       }

       //보통 클래스를 만들떄 ToString()을 오버라이드 한다.

       class Time

       {

             private int hour;

             private int min;

 

             public Time(int hour, int min)

             {

                    this.hour = hour;

                    this.min = min;

             }

 

             public string GetTime()

             {

                    //12:30

                    //return this.hour + ":" + this.min;

                    return string.Format("{0}:{1}", this.hour, this.min);

 

             }

 

             //override로 내맘대로 정의

             public override string ToString()

             {

                    return string.Format("{0}:{1}", this.hour, this.min);

             }

       }

       //난수 발생 응수(-10-0), 양수난수X

       class MyRandom : Random

       {

             public override int Next()

             {

                    //base : 부모 객체(인스턴스), 부모

                    //this : 현재 객체(인스턴스), 자식

                    return -base.Next(11);

             }

       }

}

 



반응형