⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 java04_05.htm

📁 JAVA的课件
💻 HTM
字号:
<html>

<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Java程序设计</title>
</head>

<body background="Bg.gif">

<p align="center"><font size="5"><b>§4.5 构造方法的继承</b></font></p>

<p align="left"> &nbsp;&nbsp; 
子类可以自然继承父类的普通成员变量和方法,也可以继承父类的构造方法,但构造方法的继承必须遵循以下原则:</p>
<ol>
  <li>
    <p align="left">如果父类存在不含参数的构造方法,子类无需显示地调用就可以自然继承它,而且Java会自动地在子类的构造方法中加是对父类的构造方法的调用。</li>
  <li>
    <p align="left">如果子类的构造方法的第一条语句是this或super,则Java不再为它加上对父类构造方法的调用。</li>
  <li>
    <p align="left">对于父类中带参数的构造方法,子类可通过super(参数列表)的形式调用,但它不会被继承。</li>
</ol>
<p align="left">看下面的例子:<br>
class myfather{<br> 
&nbsp; myfather(){<br> 
&nbsp;&nbsp;&nbsp; System.out.println(&quot;这是父类的无参数的构造方法");<br>
&nbsp; }<br>
&nbsp;myfather(int k){<br>
&nbsp;&nbsp; System.out.println(&quot;这是父类的带参数的构造方法");<br>
&nbsp;}<br>
}<br>
<br>
class mysun extends myfather{<br> 
&nbsp;mysun(){<br>
&nbsp;&nbsp;&nbsp; super(); //这条语句写不写都是一样的<br>
&nbsp; System.out.println(&quot;这是子类的构造方法&quot;);<br>
&nbsp;}<br>
}<br>
<br>
public class testvar {<br>  
&nbsp; public static void main(String argv[])  
&nbsp;{<br> 
&nbsp;&nbsp;&nbsp; mysun  va=new mysun();<br> 
&nbsp;&nbsp;&nbsp; va=new mysun(2);&nbsp;&nbsp; //这样写是不行的,因为带参数的构造方法不会继承下来<br> 
&nbsp; }<br>
}</p>
<p align="left">&nbsp;&nbsp;&nbsp; 上面的例子中,mysun可以不写构造函数,同样可以通过编译运行,而且会自动调用父类的无参数的构造方法。如果要调用父类带参数的构造方法,需要写成下面这个样子:</p>
<p align="left">
class mysun extends myfather{<br> 
&nbsp;mysun(){<br>
&nbsp;&nbsp;&nbsp; super(3); //这里调用父类的带参数的构造方法<br>
&nbsp; System.out.println(&quot;这是子类的构造方法&quot;);<br>
&nbsp;}<br>
}<br>
</p>
<p align="left"><a href="index.htm">回目录</a>   <a href="java04_04.htm">上一课</a> 
<a href="java04_06.htm">下一课</a></p>

</body>

</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -