Inheritance/Single: Difference between revisions

m
 
(5 intermediate revisions by the same user not shown)
Line 1,730:
{{libheader|Phix/Class}}
Add (private|public) fields and methods as needed. Make Animal and Dog abstract (ie use "abstract class") to prevent instantiation.
<!--<syntaxhighlight lang="phix">(notonline)-->
<!--</syntaxhighlight>-- lang="phix">
<span style="color: #008080;">without</span> <span style="color: #008080;">js</span> <span style="color: #000080;font-style:italic;">-- (class)</span>
without js -- (class)
<span style="color: #008080;">class</span> <span style="color: #000000;">Animal</span>
class Animal
<span style="color: #008080;">private</span> <span style="color: #004080;">string</span> <span style="color: #000000;">species</span>
private string species
<span style="color: #008080;">end</span> <span style="color: #008080;">class</span>
end class
<span style="color: #008080;">class</span> <span style="color: #000000;">Dog</span> <span style="color: #008080;">extends</span> <span style="color: #000000;">Animal</span>
class Dog extends Animal
<span style="color: #008080;">public</span> <span style="color: #008080;">procedure</span> <span style="color: #000000;">bark</span><span style="color: #0000FF;">()</span>
public procedure bark()
<span style="color: #7060A8;">puts</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"woof\n"</span><span style="color: #0000FF;">)</span>
puts(1,"woof\n")
<span style="color: #008080;">end</span> <span style="color: #008080;">procedure</span>
end procedure
<span style="color: #008080;">end</span> <span style="color: #008080;">class</span>
end class
<span style="color: #008080;">class</span> <span style="color: #000000;">Lab</span> <span style="color: #008080;">extends</span> <span style="color: #000000;">Dog</span> <span style="color: #008080;">end</span> <span style="color: #008080;">class</span>
class Lab extends Dog end class
<span style="color: #008080;">class</span> <span style="color: #000000;">Collie</span> <span style="color: #008080;">extends</span> <span style="color: #000000;">Dog</span> <span style="color: #008080;">end</span> <span style="color: #008080;">class</span>
class Collie extends Dog end class
<span style="color: #008080;">class</span> <span style="color: #000000;">Cat</span> <span style="color: #008080;">extends</span> <span style="color: #000000;">Animal</span> <span style="color: #008080;">end</span> <span style="color: #008080;">class</span>
class Cat extends Animal end class
<!--</syntaxhighlight>-->
</syntaxhighlight>
 
=={{header|PHP}}==
Line 2,090 ⟶ 2,091:
=={{header|Self}}==
Self is a class-free, object-oriented language, and as such, it uses prototypal inheritance instead of classical inheritance. This is an example of the relevant excerpts from a Self transporter fileout. Normally the object tree would be built and navigated within the graphical Self environment.
<syntaxhighlight lang="self">animal = ()</syntaxhighlight>
animal = ()
<syntaxhighlight lang="self">dog = (| parent* = animal |)</syntaxhighlight>
<syntaxhighlight lang="self">catdog = (| parent* = animal |)</syntaxhighlight>
<syntaxhighlight lang="self">labcat = (| parent* = doganimal |)</syntaxhighlight>
<syntaxhighlight lang="self">collielab = (| parent* = dog |)</syntaxhighlight>
collie = (| parent* = dog |)
</syntaxhighlight>
 
=={{header|Sidef}}==
7,795

edits