Polymorphism: Difference between revisions

Content added Content deleted
Line 1,333: Line 1,333:
c.x //Evaluates to 12</lang>
c.x //Evaluates to 12</lang>
=={{header|Elena}}==
=={{header|Elena}}==
ELENA 3.4 :
ELENA 4.x :
<lang elena>import extensions.
<lang elena>import extensions;
class Point
class Point
{
{
int prop X :: _x.
prop int X;
int prop Y :: _y.
prop int Y;
constructor new(IntNumber x, IntNumber y)
constructor(int x, int y)
[
{
_x := x.
X := x;
_y := y.
Y := y
]
}
constructor new
constructor()
<= new(0,0).
<= (0,0);
print [ console printLine("Point") ]
print() { console.printLine("Point") }
}
}
class Circle :: Point
class Circle : Point
{
{
int prop R :: _r.
prop int R;
constructor new
constructor()
<= new(0).
<= (0);
constructor new(IntNumber r)
constructor(int r)
<= new(0, 0, r).
<= (0, 0, r);
constructor new(IntNumber x, IntNumber y, IntNumber r)
constructor(int x, int y, int r)
<= new(x, y);
<= (x, y)
[
{
_r := r.
R := r
]
}
print [ console printLine("Circle") ]
print() { console.printLine("Circle") }
}
}
public program
public program()
{
[
var p := Point new.
Point p := new Point();
var c := Circle new.
Point c := new Circle();
p print.
p.print();
c print.
c.print()
]</lang>
}</lang>
{{out}}
{{out}}
<pre>
<pre>