74 lines
3.2 KiB
HTML
74 lines
3.2 KiB
HTML
<html>
|
|
|
|
<head>
|
|
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
|
|
<param name="Keyword" value="inherited">
|
|
</object>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
|
|
<title></title>
|
|
<link rel="StyleSheet" href="../../default.css">
|
|
</head>
|
|
|
|
<body>
|
|
<H1>Ïåðåîïðåäåëåíèå ìåòîäîâ</H1>
|
|
<p>Ìåòîä áàçîâîãî êëàññà ìîæåò áûòü ïåðåîïðåäåëåí (çàìåùåí) â ïîäêëàññàõ. Åñëè
|
|
ïðè ýòîì òðåáóåòñÿ âûçâàòü ìåòîä áàçîâîãî êëàññà, òî èñïîëüçóåòñÿ ñëóæåáíîå
|
|
ñëîâî <code><b>inherited</b></code> (àíãë.-
|
|
óíàñëåäîâàííûé). Íàïðèìåð:</p>
|
|
<p><code><b>type</b><br>
|
|
Person =<b> class<br>
|
|
private</b><br>
|
|
name: <b>string</b>;<br>
|
|
age: integer;<br>
|
|
<b> public</b><br>
|
|
<b>constructor</b> Create(nm: string; ag: integer);<br>
|
|
<b>begin</b><br>
|
|
name := nm; <br>
|
|
age := ag;<br>
|
|
<b>end</b>;<br>
|
|
<b>procedure</b> Print;<br>
|
|
<b>begin</b><br>
|
|
Writeln('Èìÿ: ',name,' Âîçðàñò: ',age);<br>
|
|
<b>end</b>;<br>
|
|
<b>end</b>;<br>
|
|
<br> Student =<b> class</b>(Person)<br>
|
|
<b> private</b><br>
|
|
course, group: integer;<br>
|
|
<b> public</b><br>
|
|
<b>constructor</b> Create(nm: <b>string</b>; ag,c,gr:
|
|
integer);<br>
|
|
<b>begin</b><br>
|
|
<b>inherited</b> Create(nm,ag);<br>
|
|
course := c; <br>
|
|
group := gr;<br>
|
|
<b>end</b>;<br>
|
|
<b>procedure</b> Print;<br>
|
|
<b>begin</b><br>
|
|
<b>inherited</b> Print;<br>
|
|
Writeln('Êóðñ: ',course,' Ãðóïïà: ',group);<br>
|
|
<b>end</b>;<br>
|
|
<b>end</b>;</code></p>
|
|
<p>Çäåñü ìåòîä <code>Print</code> ïðîèçâîäíîãî êëàññà <code>Student</code>
|
|
âûçûâàåò âíà÷àëå ìåòîä <code>Print</code>, óíàñëåäîâàííûé îò áàçîâîãî êëàññà
|
|
<code>Person</code>, ñ ïîìîùüþ êîíñòðóêöèè <code><b>inherited</b> Print</code>.
|
|
Àíàëîãè÷íî êîíñòðóêòîð <code>Create</code> êëàññà <code>Student</code> âûçûâàåò
|
|
âíà÷àëå êîíñòðóêòîð <code>Create</code> áàçîâîãî êëàññà <code>Person</code>,
|
|
òàêæå èñïîëüçóÿ ñëóæåáíîå ñëîâî <code><b>inherited</b></code>. </p>
|
|
<p>Ïðàâèëà íàñëåäîâàíèÿ êîíñòðóêòîðîâ ðàññìàòðèâàþòñÿ
|
|
<a href="constrinheritance.html">çäåñü</a>.</p>
|
|
<p>Ñëåäóåò îáðàòèòü
|
|
âíèìàíèå, ÷òî êîíñòðóêòîð áàçîâîãî êëàññà âûçûâàåòñÿ â ýòîì ñëó÷àå êàê ïðîöåäóðà, à íå êàê
|
|
ôóíêöèÿ, ïðè ýòîì ñîçäàíèÿ íîâîãî îáúåêòà íå ïðîèñõîäèò.</p>
|
|
<p>Åñëè â ìåòîäå âûçûâàåòñÿ ìåòîä áàçîâîãî êëàññà ñ òåìè æå ïàðàìåòðàìè, òî
|
|
ìîæíî èñïîëüçîâàòü çàïèñü <span lang="en-us">inherited</span>, íå óêàçûâàÿ èìÿ
|
|
ìåòîäà è ïàðàìåòðû. Íàïðèìåð, ìåòîä <code>Student.Print</code> ìîæíî çàïèñàòü
|
|
òàêèì îáðàçîì:</p>
|
|
<p><code> <b>procedure</b> Print;<br>
|
|
<b>begin</b><br>
|
|
<b>inherited</b>;<br>
|
|
writeln('Êóðñ: ',course,' Ãðóïïà: ',group);<br>
|
|
<b>end</b>;<br>
|
|
</code></p>
|
|
</body>
|
|
|
|
</html> |