Jump to content

Abstract type: Difference between revisions

m
→‎{{header|Phix}}: added syntax colouring the hard way
m (→‎{{header|Phix}}: added syntax colouring the hard way)
Line 2,391:
 
You can also have explicitly abstract classes (and/or abstract methods). Needs 0.8.1+
<!--<lang Phix>abstract class job-->
<span style="color: #008080;">abstract</span> <span style="color: #008080;">class</span> <span style="color: #000000;">job</span>
integer id
<span style="color: #004080;">integer</span> <span style="color: #000000;">id</span>
<span style="color: #000080;font-style:italic;">-- procedure test(); -- (the ; makes it an abstract method)</span>
procedure show()
<span style="color: #008080;">procedure</span> <span style="color: #000000;">show</span><span style="color: #0000FF;">()</span>
printf(1,"this is job:%d\n",id)
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"this is job:%d\n"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">id</span><span style="color: #0000FF;">)</span>
end procedure
<span style="color: #008080;">end</span> <span style="color: #008080;">procedure</span>
end class
<span style="color: #008080;">end</span> <span style="color: #008080;">class</span>
<span style="color: #000080;font-style:italic;">--job j = new({1}) -- compilation error: "abstract class"</span>
 
class errand extends job
<span style="color: #008080;">class</span> <span style="color: #000000;">errand</span> <span style="color: #008080;">extends</span> <span style="color: #000000;">job</span>
end class
<span style="color: #008080;">end</span> <span style="color: #008080;">class</span>
errand e = new({2})
<span style="color: #000000;">errand</span> <span style="color: #000000;">e</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">new</span><span style="color: #0000FF;">({</span><span style="color: #000000;">2</span><span style="color: #0000FF;">})</span>
e.show()</lang>
<span style="color: #000000;">e</span><span style="color: #0000FF;">.</span><span style="color: #000000;">show</span><span style="color: #0000FF;">()</span>
<!--</lang>-->
{{out}}
<pre>
7,806

edits

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