📄 java04_06.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.6 Java的继承原则和访问控制</b></font></p>
<p align="left">
继承机制很好地解决了软件的可重用性问题,但如果不对继承功能做适当的规定,则可能降低Java的效率,甚至破坏对象的封装性。一般在继承中需要进行访问权的控制。</p>
<ol>
<li>
<p align="left">子类自动继承父类所有的非私有成员变量与方法。但对父类的私有成员和方法不能直接访问。一般的,如果一个类想要其它类访问其私有成员变量,可以提供相应的方法。如下例:<br>
class myfather{<br>
private int value;<br>
public void set(int k){<br>
value=k;<br>
}<br>
public int get(){<br>
return value; <br>
}<br>
}<br>
使用的时候是这个样子的:<br>
class use{<br>
public static void main(String argv[]){<br>
myfather va=new myfather();<br>
va.set(10);<br>
System.out.print("The value is:"+va.get()) ;<br>
}<br>
} <br>
这样既实现了对数据的封装,又提供了访问的接口。<br>
</li>
<li>
<p align="left">如果希望子类直接访问本类的成员变量,但不希望其它的类访问,可以用protected来修饰。</li>
<li>
<p align="left">类的继承具有传递性,若A是B的子类,B又是C的子类,则A自动继承C中所有可以继承的成员。</li>
<li>
<p align="left">如果要防止类被继承,可以在类的前面加上final,则类不能被其它类继承。如果只是希望类中的某个方法不被子类覆盖,也可以在该方法前加上final来修饰。(思考:如果在成员变量前加上final是什么意思呢?)</li>
</ol>
<p align="left"><a href="index.htm">回目录</a> <a href="java04_05.htm">上一课</a>
<a href="java04_07.htm">下一课</a></p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -