Polymorphism: Difference between revisions
Content added Content deleted
(→{{header|jq}}: def set(keyname;value)) |
|||
Line 1,332: | Line 1,332: | ||
<lang ela>c = circleX 12 |
<lang ela>c = circleX 12 |
||
c.x //Evaluates to 12</lang> |
c.x //Evaluates to 12</lang> |
||
=={{header|Elena}}== |
|||
ELENA 3.2 : |
|||
<lang elena>import extensions. |
|||
class Point |
|||
{ |
|||
int prop X :: _x. |
|||
int prop Y :: _y. |
|||
constructor new(IntNumber x, IntNumber y) |
|||
[ |
|||
_x := x. |
|||
_y := y. |
|||
] |
|||
constructor new |
|||
<= new(0,0). |
|||
print [ console printLine("Point") ] |
|||
} |
|||
class Circle :: Point |
|||
{ |
|||
int prop R :: _r. |
|||
constructor new |
|||
<= new(0). |
|||
constructor new(IntNumber r) |
|||
<= new(0, 0, r). |
|||
constructor new(IntNumber x, IntNumber y, IntNumber r) |
|||
<= new(x, y); |
|||
[ |
|||
_r := r. |
|||
] |
|||
print [ console printLine("Circle") ] |
|||
} |
|||
program = |
|||
[ |
|||
var p := Point new. |
|||
var c := Circle new. |
|||
p print. |
|||
c print. |
|||
].</lang> |
|||
{{out}} |
|||
<pre> |
|||
Point |
|||
Circle |
|||
</pre> |
|||
=={{header|Factor}}== |
=={{header|Factor}}== |