黑马程序员技术交流社区

标题: 怎么调用父类的构造方法 [打印本页]

作者: 许万里    时间: 2013-3-1 11:57
标题: 怎么调用父类的构造方法
同题怎么调用父类的构造方法
作者: 岳珅    时间: 2013-3-1 12:14
用和子类继承父类的方式类似的“:”来调用(继承)父类的构造函数。
如果基类中定义了带参数的一个或者多个构造函数,则派生类中也必须定义至少一个构造函数,且派生类中的构造函数都必须通过base()函数“调用”基类中的某一个构造函数。
  1.         static void Main(string[] args)
  2.         {
  3.             B b = new B(1, 2, 3, 4);
  4.             Console.WriteLine(b.ToString());
  5.             Console.ReadLine();
  6.             A a = b;
  7.             Console.WriteLine(a.ToString());
  8.             Console.ReadLine();
  9.         }
  10.          public class A
  11.           {
  12.               int i,j;
  13.               public A(int a, int b)
  14.               {
  15.                    i = a;
  16.                    j = b;
  17.               }
  18.               public override string ToString()
  19.               {
  20.                   return "i="+i+",j="+j+"";
  21.               }
  22.            }
  23.          public class B:A
  24.           {
  25.             int d, c;
  26.             public B(int x, int y, int z, int e):base(x,y)
  27.              {
  28.                 d = z;
  29.                 c = e;
  30.              }
  31.             public new string ToString()
  32.              {
  33.                  return "d=" + d + ",c=" + c + "";
  34.               }
  35.            }
复制代码

作者: 谢达    时间: 2013-3-1 13:05
package com.ccsu.xie;
class Person{
        private String name;
        private int age;
        public Person(String name,int age){
                this.name = name;
                this.age = age;
                System.out.println("Person::"+name);
                System.out.println("Person::"+age);
        }
        public void getName(){
                System.out.println("Person");
        }
}

class Student extends Person{
        public Student(String name, int age) {
                //通过super来调用父类中的构造方法,具体调用父类哪个构造函数取决与参数
                super(name, age);
        }
        public void getName(){
                //通过super.方法名来调用父类的中方法
                super.getName();
        }
}
public class SuperConsDemo {
        public static void main(String[] args) {
                Person p = new Student("zhangsan",40);
                p.getName();
        }

}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2