代码如下:
- class Car {
- class Wheel {
- }
- }
- class PlaneWheel extends Car.Wheel {
- PlaneWheel(Car car) {
- car.super();
- }
- public static void main(String[] args) {
- Car car = new Car();
- PlaneWheel pw = new PlaneWheel(car);
- }
- }
调用的是 Car.Wheel 的构造器
因为 你这个类,是集成自 Car.Wheel而不是 Car.
同样,因为你不是单纯的集成子Wheel,所以你必须有一个Car的实例,因为Wheel属于Car。
以下的几种情况都是错误的- class Car {
- class Wheel {
- Wheel(int id) {
- }
- }
- }
- class PlaneWheel extends Car.Wheel {
- PlaneWheel(Car car) {
- car.super();
- }
- public static void main(String[] args) {
- Car car = new Car();
- PlaneWheel pw = new PlaneWheel(car);
- }
- }
不写调用
- class Car {
- class Wheel {
- }
- }
- class PlaneWheel extends Car.Wheel {
- PlaneWheel(Car car) {
-
- }
- public static void main(String[] args) {
- Car car = new Car();
- PlaneWheel pw = new PlaneWheel(car);
- }
- }
- class Car {
- class Wheel {
- }
- }
- class PlaneWheel extends Car.Wheel {
- PlaneWheel(Car car) {
- super();
- }
- public static void main(String[] args) {
- Car car = new Car();
- PlaneWheel pw = new PlaneWheel(car);
- }
- }
分享到:
相关推荐
- **使用`this`调用构造器**:在一个构造器内部,可以使用`this(参数列表)`来调用同一类中的另一个构造器。这种调用必须是构造器的第一条语句。 - **使用`super`调用父类构造器**:在一个构造器内部,可以使用`...
因此,在继承内部类时,必须在派生类的构造器中显式地调用基类构造器,并传入外部类的引用。 2. **super()调用**: - 在普通的类继承中,我们可以使用`super()`调用来调用父类的无参构造器。然而,对于内部类,...
2. **局部内部类**: 定义在方法、构造器或块中的类被称为局部内部类。它的作用范围仅限于该方法、构造器或块。 3. **静态内部类**: 声明为static的内部类,称为静态内部类。它不持有对外部类的隐式引用,因此可以...
内部类的构造器可以访问外部类的构造器,但如果内部类不是静态的,则需要调用`super()`来完成对父类构造器的调用。例如: ```java class a0 { class b0 { } } class vvv { class ff extends a0.b0 { ff(a0 kk) ...
4. **局部内部类**:定义在方法、块或者构造器内部的类称为局部内部类。它们的作用域局限于定义它们的代码块,可以访问该代码块内的所有变量和参数,同样,对于局部变量,也需要满足final或等效于final的要求。 ...
- **局部内部类**:定义在方法、构造器或块中的类称为局部内部类,它的作用域仅限于该方法、构造器或块。 - **匿名类**:没有名字的内部类,通常用于一次性实现某个接口或父类的简单功能。 2. **内部类继承** - ...
局部内部类是在方法或构造器的内部定义的类,它的作用域仅限于该方法或构造器内部。局部内部类可以访问方法或构造器中的所有局部变量,但这些变量必须声明为`final`(最终的)。局部内部类的主要用途是为某个特定的...
- 局部内部类是在方法、构造器或初始化块内部定义的类。它们的作用域仅限于该方法或代码块,因此具有更高的封装性。 3. **匿名内部类**: - 匿名内部类没有名称,通常用于快速创建一次性使用的简单类,常用于实现...
接着,局部内部类是在方法、构造器或者代码块内部定义的类。它们的作用域仅限于定义它们的块,因此它们可以用来封装局部变量。局部内部类不能声明为静态,也不能有静态成员。由于其作用域的限制,它们通常用于实现...
Java继承构造器使用过程解析的主要内容是介绍了Java继承构造器的使用过程,包括默认构造器和带参数的构造器,以及在子类构造器中调用基类构造器来执行初始化的重要性。这些知识点对于学习Java编程语言的开发者非常...
匿名内部类可以有自己的构造器,但是它必须调用其超类的构造器,如果匿名内部类继承自一个类的话。 6. **作用域**: 匿名内部类可以访问其所在的作用域内的所有变量,包括final的局部变量。这是因为匿名内部类...
局部内部类是定义在方法、构造器或者代码块内的类。它的作用域仅限于该方法、构造器或代码块,因此只能在这个范围内被使用。局部内部类不能访问外部类的非静态成员,除非通过对象实例。 3. 匿名内部类: 匿名内部...
- **局部内部类**:定义在方法、构造器或块中的类,其作用域仅限于该方法、构造器或块。 - **匿名内部类**:没有名称的内部类,通常用于快速实现接口或抽象类的一个简短的、一次性版本。 - **嵌套接口**:虽然...
2. 局部内部类:定义在方法、构造器或者块中的类被称为局部内部类。它们的作用域仅限于该方法、构造器或块,因此它们可以访问其所在范围内的所有局部变量。然而,局部内部类不能声明静态成员,因为它们的生命周期与...
局部内部类是在外部类的某个方法或构造器中定义的内部类。这种内部类的作用域仅限于该方法或构造器。 ##### 特点 - 只能在定义它的方法中被使用。 - 局部内部类不能包含静态成员。 - 局部内部类可以访问所在方法的`...
- **定义方式**:匿名内部类可以直接在另一个类的内部或方法内部定义,没有类名,但可以有构造器。它可以通过继承一个类或实现一个接口来创建。 - **语法**:`new 类名/接口名() { // 实现部分 }` - **实例化**:...
2. **局部内部类**:定义在方法、构造器或块内的类被称为局部内部类。它仅在该方法、构造器或块的范围内可见,不能被外部访问。局部内部类可以访问它所在的作用域内的所有变量,包括final修饰的局部变量。 3. **...
2. 局部内部类:在方法、构造器或块中定义,仅在其定义范围内可见。 3. 匿名内部类:没有名字的内部类,通常用作接口的匿名实现或创建一次性使用的类。 4. 静态内部类:与成员内部类类似,但可以独立于外部类实例...
局部内部类是在方法、构造器或初始化块内部定义的类,它的作用域仅限于该方法、构造器或初始化块。局部内部类可以访问其所在作用域的所有局部变量,但这些变量必须是final的。由于其作用域限制,局部内部类常用于...