`
qzxfl008
  • 浏览: 78583 次
  • 性别: Icon_minigender_1
  • 来自: 浙江
社区版块
存档分类
最新评论

构造器多态

阅读更多
class Meal {
	Meal() {
		System.out.println("Meal()");
	}
}
class Bread {
	Bread() { 
		System.out.println("Bread()");
	}
}
class Cheese {
	Cheese() {
		System.out.println("Cheese()");
	}
}
class Lettuce {
	Lettuce() {
		System.out.println("Lettuce()");
	}
}
class Lunch extends Meal {
	Lunch() {
		System.out.println("Lunch()"); 
	}
}
class PortableLunch extends Lunch {
	PortableLunch() {
		System.out.println("PortableLunch()");
	}
}
public class Sandwich extends PortableLunch {
	private Bread b = new Bread();
	private Cheese c = new Cheese();
	private Lettuce l = new Lettuce();
	public Sandwich() {
		System.out.println("Sandwich()"); 
	}
	public static void main(String[] args) {
		new Sandwich();
	}
}

//输出结果为
Meal()
Lunch()
PortableLunch()
Bread()
Cheese()
Lettuce()
Sandwich()


用其他类创造一个复杂的类,每个类都有自己的构造器。Sandwich类反映三个构造器,如果有Object,就有四个,这里没有。
   对象调用构造器遵循以下顺序:
1、调用基类构造器;首先是根的构造器,然后是下一层的派生类的构造器,直到最底层的构造器为止。
2、按声明顺序调用成员的初始化
3、调用派生类构造器的主体。
分享到:
评论

相关推荐

    Java中构造器内部的多态方法的行为实例分析

    Java中构造器内部的多态方法的行为实例分析是Java编程语言中一个非常重要的知识点,本文将详细介绍Java中构造器内部的多态方法的行为,结合实例形式分析了java构造器内部多态方法相关原理、功能及操作技巧。...

    北大青鸟javaOOP多态Ch03作业全集.rar

    5. 构造器的多态:虽然构造器不能被继承,但是子类可以通过super关键字调用父类的构造器,实现不同子类在初始化阶段的不同行为。 6. 接口与多态:接口是实现多态的一种重要手段,它定义了一组方法,任何实现该接口...

    java---- 封装,接口,继承,覆盖,构造过程,多态,static、this、super、final用法

    - **自动调用父类构造器:** 如果子类没有显式地调用父类的构造器,则会自动调用父类的默认构造器。 - **实例化对象:** 构造器的主要目的是用于初始化对象的初始状态。 #### 五、多态 (Polymorphism) **定义:** ...

    继承和多态的相关Java源码下载

    子类构造器的第一行通常是`super(parameters)`,用于调用特定的父类构造器。 8. **访问父类的私有成员**: 虽然父类的私有成员不能直接在子类中访问,但可以通过友元类(friend class)或者使用内部类等方式实现...

    Java 学习课件,继承和多态

    - 子类构造器中如果没有明确地调用父类的构造器,则默认调用父类无参构造器。 - 如果需要调用父类有参构造器,则需使用`super`关键字显式指定。 - 示例: ```java public class A { public A() { System.out....

    java继承与多态

    当子类继承父类时,需要通过显式调用父类的构造器来初始化父类中的数据成员。这通常通过`super()`关键字完成。 **2.5 多层继承** Java支持多层继承,即一个类可以从另一个类继承,而这个父类本身也可以从另一个...

    面向对象封装继承和多态.docx

    * 调用构造器:类名 对象名 = new 构造器(实参 1....实参 n); 匿名对象 * 匿名对象:new 构造器().方法名(); * 注意:使用匿名对象调用方法的时候,这个方法只能被调用一次。 方法的重载 * 方法名相同,参数...

    多态描述飞行器.zip

    "多态描述飞行器"这个项目可能是一个C#课程或考试中的实例,目的是让学生通过实际操作理解并运用多态性。在这一项目中,我们可能会看到以下几个关键知识点: 1. **类与对象**:首先,我们需要创建类来描述飞行器,...

    Java编程思想第08章多态.ppt

    在多态场景下,如果父类有一个公共构造器,子类可以通过super关键字来调用父类的构造器,确保父类部分的状态得以初始化。 - 然而,构造器不能被重写(override),这意味着多态性不适用于构造器。每个子类都有自己...

    9、Java面向对象之继承和多态作业题[收集].pdf

    在子类构造器中,通过`super()`调用父类的构造器,确保父类的初始化工作得以完成。例如,`Topic`类的构造器中`super(topicId, boardTd)`就是调用了父类`Tip`的构造器。 接下来,我们讨论**多态**。多态是指同一种...

    多态密码机制的改进及其严格雪崩特性分析

    - 构造盒的改进:通过引入多个候选单向函数(如线性同余随机数生成器、带进位加法生成器等),结合网络数据包字节数进行组合,形成一个新的强单向函数。 - 网络数据包的应用:在网络通信中,通信双方可以基于上传和...

    C++和Java多态的区别

    - **方法调用指令**:JVM提供了四种方法调用指令,分别为`invokestatic`(静态绑定)、`invokespecial`(用于私有方法、构造函数和父类方法)、`invokevirtual`(动态绑定)和`invokeinterface`(接口方法调用)。...

    c++ 的封装继承多态例子

    同时,这些类可能会有私有数据成员,以及公有构造函数和访问器方法,体现封装特性。如果文件中还有其他类,可能是为了展示如何通过继承和多态构建复杂的类层次结构。 通过学习和实践这些例子,开发者能够更好地理解...

    讲义2继承多态.docx

    在创建子类对象时,首先会调用父类的构造器,然后再执行子类的构造器。静态成员和静态代码块不涉及继承,它们在类加载时初始化,而实例成员和构造器在对象实例化时初始化。例如,在`Dog`类的例子中,`DogProfile`...

    在Eclipse中实现继承,多态,主要是实现move,Draw 还有Draw Rectangle,Triangle,pentagon

    // 构造器和其他方法... @Override public void draw() { Graphics2D g2d = (Graphics2D) graphics; g2d.fillRect(x, y, width, height); } } public class Triangle extends Shape { private Point[] ...

    Unity基础 C# 第六章 继承与多态.pptx

    默认情况下,子类构造器会调用父类无参的构造器。如果需要调用有参的构造器,则需要使用 `base` 关键字显式指定: ```csharp class Car { public Car(int i) { } } class TrashCar : Car { public TrashCar(int ...

    java 三大特性--封装、继承和多态理解

    此外,Java还支持构造器,用于初始化对象的状态,以及getter和setter方法,实现数据的读取和修改。 **继承**是面向对象编程的另一个关键特性,它允许一个类(子类)从另一个类(父类)继承属性和行为。这有助于代码...

    关于C#继承多态的应用项目

    通过继承和多态,你可以为这些泛型集合中的元素定义自定义的行为,比如自定义比较器或扩展方法。 例如,假设有一个`Employee`类,你可以创建一个`EmployeeList`类继承自`List<Employee>`,并添加一些特定于员工的...

    JAVA基础第章继承与多态练习题.docx

    如果试图使用带参数的构造器创建 `Demo` 对象,例如 `new Demo("Good")`,则需要在 `Demo` 类中提供对应的构造器来传递参数。在给定的代码中,`Demo` 类没有定义任何构造器,所以第 15 行会出错,答案是 D。 总结:...

Global site tag (gtag.js) - Google Analytics