반응형
using System; using System.Collections.Generic; using System.Text; // 메소드 : 멤버 함수를 OOP적으로 부르는 용어 !! // 함수 -- 메소드 -- 펑션 -- 프로시져 // 오버 로딩 제공 // -- > 같은 이름의 함수가 여러개 존재하는것 // --> 메소드의 이름은 같지만 시그니쳐 ( 매개변수, 리턴) 가 다르면 // 여러개의 메소드를 구현할수 있다 !! // -----> 같은 기능을 수행하지만.. 매개변수 정보가 다를경우 !! /* class Person { public Person(int age, string name) { } public Person(int age, string name, int money) { } // 단점, 코드의 가독성이 떨어질수 있다 !! // 여러개의 함수가 존재 --> 관리가 어렵다 !! public void foo(int a) { } // public void foo(int * a) { } public void foo(out int a) { a = 10; } public void foo(ref int a ) { } // 접근 지정자는 오버로딩에 영향을 주지 않는다 !! private voㅂid foo(ref int a) { } private int foo(ref int a) { return 0; } // 리턴은 타입은 오버로딩에 영향을 주지 않는다 !! private void foo( params a) { } //params 는 불간능 !! } */ // 메소드의 시그니쳐 --->다른 메서드들과 구분하기위한 방법 !! // 1) 메서드이름 : 고유한 이름 // 2) 파라미터의 형식 : 파라이터의 타입에 따라 구분한다 . // 3) 파라미터의 개수 // 4) 파라미터의 변경자 : ref , out !! // 오버 라이딩 제공 !! // --> 부모에서 정의한 함수를 자식에서 재정의 하는것 class Anamal { // C#에서 가상함수를 구현 !! public virtual void Die() { Console.WriteLine(" 으악 !! "); } } class Person : Anamal { // override // new // sealed 메소드 : 오버라이딩을 더이상 못하게 해라 !! public override sealed void Die() { Console.WriteLine(" Person 으악 !! "); } } class Student : Person { public override void Die() { } } namespace Method { class Program { static void Main(string[] args) { // C++ virtual 키워드의 효과 !! Person p = new Person(); p.Die(); } } }
'C#' 카테고리의 다른 글
[C#] C# 객체 지향 프로그래밍!! (0) | 2014.11.18 |
---|---|
[C#] Object 클래스란 (0) | 2014.11.18 |
[C#] cs함수 (0) | 2014.11.18 |
[C#] WindowForm에서 데이터베이스를 사용한 프로그램 (0) | 2014.11.18 |
[C#] C#에서 엑세스(데이터베이스)를 사용하여 연동하기 (0) | 2014.11.18 |