A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 许万里 中级黑马   /  2013-3-1 11:57  /  1259 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

同题怎么调用父类的构造方法

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

2 个回复

倒序浏览
用和子类继承父类的方式类似的“:”来调用(继承)父类的构造函数。
如果基类中定义了带参数的一个或者多个构造函数,则派生类中也必须定义至少一个构造函数,且派生类中的构造函数都必须通过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.            }
复制代码

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
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();
        }

}

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马