- 论坛徽章:
- 0
|
给你段代码看看
- public class TestIn1 {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- TestIn2 t2 = new TestIn2();
- t2.run();
- }
- public void run() {
- // TODO Auto-generated method stub
- show();
- }
-
- protected void show()
- {
- System.out.println("show in1");
- }
- }
- class TestIn2 extends TestIn1 {
-
- }
复制代码
运行后显示 show in1
- public class TestIn1 {
- /**
- * @param args
- */
-
- protected String name;
-
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- TestIn2 t2 = new TestIn2("class2");
- t2.run();
- }
-
- public TestIn1(String name)
- {
- this.name = name;
- }
- public void run() {
- // TODO Auto-generated method stub
- show();
- }
-
- private void show()
- {
- System.out.println("show in1");
- }
- }
- class TestIn2 extends TestIn1 {
-
- public TestIn2(String name)
- {
- super(name);
- }
-
- public void run()
- {
- show();
- super.run();
- }
-
- public void show()
- {
- System.out.println("show in2");
- }
- }
复制代码
运行后显示
show in2
show in1
说明几个问题:
1. 如果子类中不定义和父类中同名的方法,则自动继承父类的方法。
2. 父类中的private方法不能被子类直接使用,但是可以通过super.method()间接使用。
3. 因为构造函数不能被继承,super()用来传递构造函数
通过super()来传递构造函数参数的方法非常有用,特别是在GUI的编程,还有自定义的Exception等等,比如
- public class ConnectionException extends Exception
- {
- public ConnectionException(String msg)
- {
- super(msg);
- }
- }
复制代码
[ 本帖最后由 perryhg 于 2006-2-16 01:33 编辑 ] |
|