2013-10-13 2 views
0

그래서 난 내 부모 클래스의 포인트를 형성 상속 내 자식 클래스 라인을 가지고 있고 나는 내 아이 클래스에서 내 기본 클래스의 생성자를 사용하지 않는하지만 난이 오류를 얻을 :상속 생성자 오류

'Shape.Point을

:

public class Point 
{ 

    public Point(int x, int y) 
    { 
     X = x; 
     Y = y; 
    } 
    public int X { get; set; } 
    public int Y { get; set; } 
} 

이 내 아이 클래스입니다 : '이 내 부모 클래스 0 인수

를 사용하는 생성자가 포함되어 있지 않습니다 당신은 당신이 그것을이 생성자를 호출하거나 구현해야합니다 Line에서

public Point(int x, int y) 
{ 
    X = x; 
    Y = y; 
} 

의 ctor에있다 Point로 확장

public class Line : Point 
{ 
    public Point Start { get; set; } 
    public Point End { get; set; } 
    public double Lenght { get; set; } 

    public Line(Point start , Point end) 
    { 
     Start = start; 
     End = end; ; 
    } 


    public double Calculate_Lenght() 
    { 
     Lenght = System.Math.Sqrt((End.X - Start.X)^2 + (End.Y - End.X)^2); 
     return Lenght; 
    } 
} 

답변

1

, 너무

어느

public Line(int x, int y) 
{ 
} 

또는

public Line(Point start, Point end) 
    : base (...) 
{ 
} 

이것은 의미가없는 것처럼 보이지만 실제로는 LinePoint으로 확장하고 싶지 않을 것입니다.

또는 Point에 상속하려는 공통 기능이 있으면 Point에 매개 변수가없는 생성자를 지정할 수 있습니다.

+0

이 의미가 있습니다. 라인에 포인트가 있습니다. 라인은 요점이 아닙니다. – adt

+0

@Ela :하지만 내 라인 클래스는 2 점 객체를 시작하고 끝내며, 둘 다 y와 x를가집니다. 어떻게 Line Ctor에서 시작하고 끝내기 위해 전달할 수 있습니까? base (...) –

+0

@ rNuǝɹɐ 나는 그것이 의미가 없다는 것을 의미한다. 보통 Line은 X와 Y를 가지지 않기 때문이다. Point로부터 속성을 갖고 싶다면, 어떤 논리가 그 뒤에 있어야 하는지를 말할 수 없다. – MichaC