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. |
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") ] |
||
} |
} |
||
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> |
||
{{out}} |
{{out}} |
||
<pre> |
<pre> |