温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

超类如何传递参数

发布时间:2026-09-01 13:32:21 来源:亿速云 阅读:94 作者:小樊 栏目:编程语言

“超类如何传递参数”通常指的是在继承关系中,子类如何把参数传递给父类(超类)的构造函数/初始化方法。不同语言写法不一样,下面用常见语言举例说明。


一、Java(最典型)

Java 中子类构造函数必须显式或隐式调用父类构造函数,用 super(...)

1️⃣ 父类有无参构造

class Animal {
    public Animal() {
        System.out.println("Animal created");
    }
}
class Dog extends Animal {
    public Dog() {
        // 默认调用 super()
    }
}

2️⃣ 父类有参构造(必须显式传参)

class Animal {
    String name;

    public Animal(String name) {
        this.name = name;
    }
}
class Dog extends Animal {
    public Dog(String name) {
        super(name); // 把参数传给超类
    }
}

规则

  • super(...) 必须是子类构造函数的第一条语句
  • 不写则默认调用 super()(要求父类有无参构造)

二、Python

Python 用 super() 传递参数。

1️⃣ 新式写法(推荐)

class Animal:
    def __init__(self, name):
        self.name = name

class Dog(Animal):
    def __init__(self, name, age):
        super().__init__(name)  # 传参给超类
        self.age = age

2️⃣ 多继承注意

super().__init__(name)

会自动按 MRO(方法解析顺序) 找下一个类。


三、C++

class Animal {
public:
    Animal(string name) {}
};

class Dog : public Animal {
public:
    Dog(string name) : Animal(name) {}  // 初始化列表
};

四、常见错误 ❌

❌ Java 中这样写

class Dog extends Animal {
    public Dog(String name) {
        // 忘记 super(name)
    }
}

如果 Animal 没有无参构造 → 编译错误


五、总结一句话 ✅

子类通过构造函数,在创建对象时调用超类构造函数,并把参数显式传递过去。

如果你指的是某个具体语言(如 Java / Python / C++ / Kotlin / TypeScript),或者运行期参数传递(不是构造),可以告诉我,我可以更针对性讲。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI