关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回

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

发布时间:2022-09-27 11:08:52

本文实例讲述了Java中构造器内部的多态方法的行为操作。分享给大家供大家参考,具体如下:

这篇文章主要讨论的是,若在一个构造器中调用正在构造的对象的某个动态绑定的方法时会出现的情况。在此之前,我们需要知道构造器是如何在复杂的层次结构中运作的,尽管构造方法并不具有多态性,因为它们实际上是static方法,只不过是隐式声明的static。

复杂层次结构中构造器的调用顺序

基类的构造器总是在导出类的构造过程中被调用,而且按照继承层次逐渐向上链接,以使每个基类的构造器都能得到调用。这样做是因为,在Java类中,我们通常将字段设置为private类型,也就是说,在子类中通常无法直接访问基类的字段,那么只有通过调用基类的构造器才能对基类对象的元素进行初始化,那么就必须保证所有的构造器都得到调用,这样才能正确地构造完整的对象。下面的例1展示了包含有组合与继承关系的各类中构造器的调用顺序: 

例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();
   }
}

另外有需要云服务器可以了解下风纳云fengnayun.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


/template/Home/Dawn/PC/Static

选择风纳云,也许是您成就一番大事业的开端

注册账号