Java继承中的构造方法
最近学java,在继承中的构造方法的调用上碰到一些问题,看到一篇不错的文章,转载。
转载地址:http://mgc.name/article.asp?id=165
继承中的构造方法:
1.子类的构造过程中必须调用其基类的构造方法;
2.子类可以在自己的构造方法中使用super(argument_list)调用基类的构造方法;
如果调用super,必须写在子类构造方法的第一行;
3.如果子类的构造方法中没有显式调用基类构造方法,则系统默认调用基类无参数的构造方法;
4.如果子类构造方法中既没有显式调用基类构造方法,而基类中又没有无参的构造方法,则编译出错。
--------开头的几句话立即解决了我的问题。
实例:
TestSuperSub.java:
程序代码:
1 import java.io.* ;
2
3 class SuperClass
4 {
5 private int n ;
6 SuperClass() {
7 System.out.println("SuperClass()") ;
8 }
9 SuperClass(int n) {
10 System.out.println("SuperClass(" + n + ")") ;
11 this.n = n ;
12 }
13 }
14 class SubClass extends SuperClass
15 {
16 private int n ;
17 SubClass() {
18 super(300) ;
19 System.out.println("SubClass()") ;
20 }
21 SubClass(int n) {
22 System.out.println("SubClass(" + n + ")") ;
23 this.n = n ;
24 }
25 }
26 public class TestSuperSub
27 {
28 public static void main(String args[]) {
29 SubClass sc1 = new SubClass() ;
30 SubClass sc2 = new SubClass(100) ;
31 }
32 }