Jump to content

Inheritance/Single: Difference between revisions

m
 
(6 intermediate revisions by the same user not shown)
Line 1,677:
=={{header|Perl}}==
 
<syntaxhighlight lang="perl">package Animal;
package Animal;
#functions go here...
1;
1;</syntaxhighlight>
 
<syntaxhighlight lang="perl">package Dog;
use Animal;
@ISA = qw( Animal );
#functions go here...
1;
1;</syntaxhighlight>
 
<syntaxhighlight lang="perl">package Cat;
use Animal;
@ISA = qw( Animal );
#functions go here...
1;
1;</syntaxhighlight>
 
<syntaxhighlight lang="perl">package Lab;
use Dog;
@ISA = qw( Dog );
#functions go here...
1;
1;</syntaxhighlight>
 
<syntaxhighlight lang="perl">package Collie;
use Dog;
@ISA = qw( Dog );
#functions go here...
1;
1;</syntaxhighlight>
 
# The same using the [http://search.cpan.org/perldoc?MooseX::Declare MooseX::Declare] module:
 
<syntaxhighlight lang="perl">use MooseX::Declare;
 
class Animal {
Line 1,723 ⟶ 1,724:
class Collie extends Dog {
# methods go here...
}
}</syntaxhighlight>
1;</syntaxhighlight>
 
=={{header|Phix}}==
{{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)-->
1;</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>-->
1;</syntaxhighlight>
 
=={{header|PHP}}==
Line 2,088 ⟶ 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 |)
1;</syntaxhighlight>
 
=={{header|Sidef}}==
7,794

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.