깊이 분석 c\#계승
클래스 를 만 들 때 프로그래머 는 새로운 데이터 구성원 과 구성원 함 수 를 완전히 다시 만 들 필요 가 없습니다.새로운 클래스 만 설계 하고 기 존 클래스 의 구성원 을 계승 하면 됩 니 다.이 기 존의 종 류 는 기본 류 라 고 불 리 며,이 새로운 종 류 는 파생 류 라 고 불 린 다.
계승 하 는 사상 은(IS-A)관계 에 속한다.예 를 들 어 포유동물 은(IS-A)동물 에 속 하고 개 는(IS-A)포유동물 에 속 하기 때문에 개 는(IS-A)동물 에 속한다.
기류 와 파생 류
하나의 클래스 는 여러 클래스 나 인터페이스 에서 파생 될 수 있 는데 이것 은 여러 개의 기본 클래스 나 인터페이스 에서 데이터 와 함 수 를 계승 할 수 있다 는 것 을 의미한다.
C\#에서 파생 클래스 를 만 드 는 문법 은 다음 과 같 습 니 다.
< > class < >
{
...
}
class < > : < >
{
...
}
만약 에 기본 적 인 Shape 가 있다 고 가정 하면 파생 류 는 Rectangle 입 니 다.
using System;
namespace InheritanceApplication
{
class Shape
{
public void setWidth(int w)
{
width = w;
}
public void setHeight(int h)
{
height = h;
}
protected int width;
protected int height;
}
//
class Rectangle: Shape
{
public int getArea()
{
return (width * height);
}
}
class RectangleTester
{
static void Main(string[] args)
{
Rectangle Rect = new Rectangle();
Rect.setWidth(5);
Rect.setHeight(7);
//
Console.WriteLine(" : {0}", Rect.getArea());
Console.ReadKey();
}
}
}
위의 코드 가 컴 파일 되 고 실 행 될 때 다음 과 같은 결 과 를 얻 을 수 있 습 니 다.총 면적:35
기본 클래스 초기 화
파생 류 는 기본 적 인 구성원 변수 와 구성원 방법 을 계승 했다.따라서 부모 클래스 대상 은 하위 클래스 대상 이 만 들 기 전에 만들어 져 야 합 니 다.구성원 초기 화 목록 에서 부모 클래스 를 초기 화 할 수 있 습 니 다.
다음 프로그램 은 이 점 을 보 여 줍 니 다.
using System;
namespace RectangleApplication
{
class Rectangle
{
//
protected double length;
protected double width;
public Rectangle(double l, double w)
{
length = l;
width = w;
}
public double GetArea()
{
return length * width;
}
public void Display()
{
Console.WriteLine(" : {0}", length);
Console.WriteLine(" : {0}", width);
Console.WriteLine(" : {0}", GetArea());
}
}//end class Rectangle
class Tabletop : Rectangle
{
private double cost;
public Tabletop(double l, double w) : base(l, w)
{ }
public double GetCost()
{
double cost;
cost = GetArea() * 70;
return cost;
}
public void Display()
{
base.Display();
Console.WriteLine(" : {0}", GetCost());
}
}
class ExecuteRectangle
{
static void Main(string[] args)
{
Tabletop t = new Tabletop(4.5, 7.5);
t.Display();
Console.ReadLine();
}
}
}
위의 코드 가 컴 파일 되 고 실 행 될 때 다음 과 같은 결 과 를 얻 을 수 있 습 니 다.길이
너비
면적:33.75
원가:2362.5
C\#다 중 상속
다 중 계승 이란 하나의 유형 이 하나의 아버지 류 보다 많은 계승 행위 와 특징 을 동시에 계승 할 수 있 는 기능 을 말한다.단일 상속 과 상대 적 으로 단일 상속 이란 하나의 유형 이 하나의 부류 에서 만 계승 할 수 있다 는 것 을 말한다.
C\#다 중 상속 은 지원 되 지 않 습 니 다.단,인 터 페 이 스 를 사용 하여 다 중 계승 을 실현 할 수 있 습 니 다.다음 프로그램 은 이 점 을 보 여 줍 니 다.
using System;
namespace InheritanceApplication
{
class Shape
{
public void setWidth(int w)
{
width = w;
}
public void setHeight(int h)
{
height = h;
}
protected int width;
protected int height;
}
// PaintCost
public interface PaintCost
{
int getCost(int area);
}
//
class Rectangle : Shape, PaintCost
{
public int getArea()
{
return (width * height);
}
public int getCost(int area)
{
return area * 70;
}
}
class RectangleTester
{
static void Main(string[] args)
{
Rectangle Rect = new Rectangle();
int area;
Rect.setWidth(5);
Rect.setHeight(7);
area = Rect.getArea();
//
Console.WriteLine(" : {0}", Rect.getArea());
Console.WriteLine(" : ${0}" , Rect.getCost(area));
Console.ReadKey();
}
}
}
위의 코드 가 컴 파일 되 고 실 행 될 때 다음 과 같은 결 과 를 얻 을 수 있 습 니 다.총 면적:35
페인트 총 원가:$2450
이상 은 c\#상속 의 상세 한 내용 을 깊이 분석 하고 c\#상속 에 관 한 자 료 는 우리 의 다른 관련 글 을 주목 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#Task를 사용하여 비동기식 작업을 수행하는 방법라인이 완성된 후에 이 라인을 다시 시작할 수 없습니다.반대로 조인(Join)만 결합할 수 있습니다 (프로세스가 현재 라인을 막습니다). 임무는 조합할 수 있는 것이다. 연장을 사용하여 그것들을 한데 연결시키는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.