C 언어
다형성이라는 단어 형태가 많다는 뜻입니다. 객체 지향 프로그래밍 패러다임에서 다형성은 종종 '하나의 인터페이스, 다중 기능'으로 표현됩니다.
다형성은 정적이거나 동적일 수 있습니다. 정적 다형성에서 , 함수에 대한 응답은 컴파일 시간에 결정됩니다. 동적 다형성에서 , 런타임에 결정됩니다.
컴파일 시간 동안 함수와 객체를 연결하는 메커니즘을 초기 바인딩이라고 합니다. 정적 바인딩이라고도 합니다. C#은 정적 다형성을 구현하는 두 가지 기술을 제공합니다. 그들은 -
다음 장에서 연산자 오버로딩에 대해 설명합니다.
동일한 범위에서 동일한 함수 이름에 대해 여러 정의를 가질 수 있습니다. 함수의 정의는 인수 목록의 인수 유형 및/또는 수에 따라 서로 달라야 합니다. 반환 유형만 다른 함수 선언은 오버로드할 수 없습니다.
다음 예는 print() 함수 사용을 보여줍니다. 다른 데이터 유형을 인쇄하려면 -
라이브 데모using System; namespace PolymorphismApplication { class Printdata { void print(int i) { Console.WriteLine("Printing int: {0}", i ); } void print(double f) { Console.WriteLine("Printing float: {0}" , f); } void print(string s) { Console.WriteLine("Printing string: {0}", s); } static void Main(string[] args) { Printdata p = new Printdata(); // Call print to print integer p.print(5); // Call print to print float p.print(500.263); // Call print to print string p.print("Hello C++"); Console.ReadKey(); } } }
위의 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다. -
Printing int: 5 Printing float: 500.263 Printing string: Hello C++
C#을 사용하면 인터페이스의 부분적 클래스 구현을 제공하는 데 사용되는 추상 클래스를 만들 수 있습니다. 파생 클래스가 상속을 받으면 구현이 완료됩니다. 추상 클래스에는 파생 클래스에 의해 구현되는 추상 메서드가 포함되어 있습니다. 파생 클래스에는 보다 전문화된 기능이 있습니다.
다음은 추상 클래스에 대한 규칙입니다 -
추상 클래스의 인스턴스를 만들 수 없습니다.
추상 클래스 외부에서 추상 메서드를 선언할 수 없습니다.
클래스가 봉인됨으로 선언된 경우 , 상속될 수 없으며 추상 클래스는 봉인된 것으로 선언될 수 없습니다.
다음 프로그램은 추상 클래스를 보여줍니다 -
라이브 데모using System; namespace PolymorphismApplication { abstract class Shape { public abstract int area(); } class Rectangle: Shape { private int length; private int width; public Rectangle( int a = 0, int b = 0) { length = a; width = b; } public override int area () { Console.WriteLine("Rectangle class area :"); return (width * length); } } class RectangleTester { static void Main(string[] args) { Rectangle r = new Rectangle(10, 7); double a = r.area(); Console.WriteLine("Area: {0}",a); Console.ReadKey(); } } }
위의 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다. -
Rectangle class area : Area: 70
상속된 클래스에서 구현하려는 클래스에 정의된 함수가 있는 경우 가상을 사용합니다. 기능. 가상 함수는 다른 상속된 클래스에서 다르게 구현될 수 있으며 이러한 함수에 대한 호출은 런타임에 결정됩니다.
동적 다형성은 추상 클래스에 의해 구현됩니다. 및 가상 기능 .
다음 프로그램은 이것을 보여줍니다 -
라이브 데모using System; namespace PolymorphismApplication { class Shape { protected int width, height; public Shape( int a = 0, int b = 0) { width = a; height = b; } public virtual int area() { Console.WriteLine("Parent class area :"); return 0; } } class Rectangle: Shape { public Rectangle( int a = 0, int b = 0): base(a, b) { } public override int area () { Console.WriteLine("Rectangle class area :"); return (width * height); } } class Triangle: Shape { public Triangle(int a = 0, int b = 0): base(a, b) { } public override int area() { Console.WriteLine("Triangle class area :"); return (width * height / 2); } } class Caller { public void CallArea(Shape sh) { int a; a = sh.area(); Console.WriteLine("Area: {0}", a); } } class Tester { static void Main(string[] args) { Caller c = new Caller(); Rectangle r = new Rectangle(10, 7); Triangle t = new Triangle(10, 5); c.CallArea(r); c.CallArea(t); Console.ReadKey(); } } }
위의 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다. -
Rectangle class area: Area: 70 Triangle class area: Area: 25
C 언어
자바 PrintStream 클래스 이 자습서에서는 예제를 통해 Java PrintStream 클래스와 해당 print() 및 printf() 메서드에 대해 배웁니다. PrintStream java.io 클래스 패키지는 바이트 대신 일반적으로 읽을 수 있는 형식(텍스트)으로 출력 데이터를 쓰는 데 사용할 수 있습니다. 추상 클래스 OutputStream를 확장합니다. . PrintStream 작업 다른 출력 스트림과 달리 PrintStream 기본 데이터(정수, 문자)를 바이트 대신 텍스트 형식으로 변환합니다. 그런 다음
C#에서 상속이란 무엇입니까? 상속 C#의 중요한 개념입니다. 상속은 부모 클래스와 자식 클래스를 정의하는 개념입니다. 자식 클래스는 부모 클래스의 메서드와 속성을 상속하지만 동시에 필요한 경우 메서드의 동작을 수정할 수도 있습니다. 자식 클래스는 필요한 경우 자체 메서드를 정의할 수도 있습니다. 이 C# 자습서에서는 다음을 배우게 됩니다. C#에서 상속이란 무엇입니까? C# 상속 예 C#의 다형성이란 무엇입니까? C# 다형성 예제 프로그램 예제를 통해 C# 상속에 대해 더 잘 이해해 보겠습니다. C# 상속 예제 이제 코