pascalabcnet/PABCNetHelp/LangGuide/Classes/inherited.html
Mikhalkovich Stanislav 71bf09add9 bug fix #1632
правки в Help
2019-01-26 11:43:27 +03:00

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>
&nbsp; Person =<b> class<br>
&nbsp; private</b><br>
&nbsp;&nbsp;&nbsp; name: <b>string</b>;<br>
&nbsp;&nbsp;&nbsp; age: integer;<br>
<b>&nbsp; public</b><br>
&nbsp;&nbsp;&nbsp; <b>constructor</b> Create(nm: string; ag: integer);<br>
&nbsp;&nbsp;&nbsp; <b>begin</b><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name := nm; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; age := ag;<br>
&nbsp;&nbsp;&nbsp; <b>end</b>;<br>
&nbsp;&nbsp;&nbsp; <b>procedure</b> Print;<br>
&nbsp;&nbsp;&nbsp; <b>begin</b><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Writeln('Èìÿ: ',name,'&nbsp; Âîçðàñò: ',age);<br>
&nbsp;&nbsp;&nbsp; <b>end</b>;<br>
&nbsp; <b>end</b>;<br>
&nbsp; <br>&nbsp; Student =<b> class</b>(Person)<br>
<b> &nbsp; private</b><br>
&nbsp;&nbsp;&nbsp; course, group: integer;<br>
<b>&nbsp; public</b><br>
&nbsp;&nbsp;&nbsp; <b>constructor</b> Create(nm: <b>string</b>; ag,c,gr:
integer);<br>
&nbsp;&nbsp;&nbsp; <b>begin</b><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>inherited</b> Create(nm,ag);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; course := c; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; group := gr;<br>
&nbsp;&nbsp;&nbsp; <b>end</b>;<br>
&nbsp;&nbsp;&nbsp; <b>procedure</b> Print;<br>
&nbsp;&nbsp;&nbsp; <b>begin</b><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>inherited</b> Print;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Writeln('Êóðñ: ',course,'&nbsp; Ãðóïïà: ',group);<br>
&nbsp;&nbsp;&nbsp; <b>end</b>;<br>
&nbsp; <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>&nbsp;&nbsp;&nbsp; <b>procedure</b> Print;<br>
&nbsp;&nbsp;&nbsp; <b>begin</b><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>inherited</b>;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writeln('Êóðñ: ',course,'&nbsp; Ãðóïïà: ',group);<br>
&nbsp;&nbsp;&nbsp; <b>end</b>;<br>
&nbsp;</code></p>
</body>
</html>