Polymorphism: Difference between revisions

Content added Content deleted
(Scala contribution added.)
Line 1,333: Line 1,333:
c.x //Evaluates to 12</lang>
c.x //Evaluates to 12</lang>
=={{header|Elena}}==
=={{header|Elena}}==
ELENA 3.2 :
ELENA 3.4 :
<lang elena>import extensions.
<lang elena>import extensions.

class Point
class Point
{
{
int prop X :: _x.
int prop X :: _x.
int prop Y :: _y.
int prop Y :: _y.
constructor new(IntNumber x, IntNumber y)
constructor new(IntNumber x, IntNumber y)
[
[
Line 1,346: Line 1,346:
_y := y.
_y := y.
]
]
constructor new
constructor new
<= new(0,0).
<= new(0,0).
print [ console printLine("Point") ]
print [ console printLine("Point") ]
}
}

class Circle :: Point
class Circle :: Point
{
{
int prop R :: _r.
int prop R :: _r.
constructor new
constructor new
<= new(0).
<= new(0).
constructor new(IntNumber r)
constructor new(IntNumber r)
<= new(0, 0, r).
<= new(0, 0, r).
constructor new(IntNumber x, IntNumber y, IntNumber r)
constructor new(IntNumber x, IntNumber y, IntNumber r)
<= new(x, y);
<= new(x, y);
Line 1,368: Line 1,368:
_r := r.
_r := r.
]
]
print [ console printLine("Circle") ]
print [ console printLine("Circle") ]
}
}

program =
public program
[
[
var p := Point new.
var p := Point new.
var c := Circle new.
var c := Circle new.
p print.
p print.
c print.
c print.
].</lang>
]</lang>
{{out}}
{{out}}
<pre>
<pre>