c#상속,오버라이딩

재이리 ㅣ 2023. 4. 13. 09:13

하나의 기반 클래스를 사용하여 파생 클래스를 생성하는것

 

예)

라면 클래스를 사용하여 짜장라면 클래스를 생성한다.

 

장점: 짜장은그대로 두고 라면의 기능만 수정하고 싶을때 수정 하면 된다

 

상속 예시 

 

class Ramen{

public void heat(){

   Console.WriteLine("라면면발을 끓입니다.")

   }

}

 

class Jajangramen: Ramen{

public viod jajang(){

Console.WriteLine("짜장소스를 끓입니다")

    } 

}

 

 

class Program {

Jajangramen jaja= new Jajangramen();

jaja.heat();

jaja.jajang();

 

}

 

오버라이딩 

상속받은 메소드에서 같은 메소드의 이름을 생성하였을때 메소드를 재정의한다

메소드의 이름과 매개변수의 갯수나 타입이 모두 일치할때 가능

상속받은 메소드의 내용만 변경하는것

 

오버라이딩 예시

 

class Ramen{

public void heat(){

   Console.WriteLine("라면면발을 끓입니다.")

   }

}

 

class Jajangramen: Ramen{

public viod heat(){

Console.WriteLine("짜장라면을 끓입니다")

    } 

}

 

class Jampongramen: Ramen{

public viod heat(){

Console.WriteLine("짬뽕라면을 끓입니다")

    } 

}

 

 

class Program {

Jajangramen jaja= new Jajangramen();

Jampongramen jam = new Jampongramen();

jaja.heat();

jam.heat();

 

}

 

 

 

오버로딩

이름은 같은데 매개변수의 갯수나 형식이 다를때 사용

기존에 없던 새로운 메소드를 정의하는것

 

오버로딩 예시

 

class Ramen{

public void heat(){

   Console.WriteLine("라면면발을 끓입니다.")

   }

public void heat(string menbal){

   Console.WriteLine(menbal+"면발을 끓입니다.")

   }

public void heat(string menbal, int gadak){

   Console.WriteLine(menbal+"면발을 "+gadak+"끓입니다")

   }

}

'c# > c# 기본문법' 카테고리의 다른 글

c# 배열  (0) 2023.04.13
c# 클래스의 데이터 전달  (0) 2023.04.13
c# 생성자와소멸자  (1) 2023.04.13
C# 클래스,인스턴스  (0) 2023.04.13
형변환  (0) 2023.04.13