zoukankan      html  css  js  c++  java
  • 有继承时的构造方法(转)

    1.子类的构造方法中必须调用其基类的构造方法。

    2.子类可以在自己的构造方法中使用super(argument_list)调用基类的构造方法。

    3.使用this(arguement_list)调用本类的其他构造方法。

    4.如果使用super()调用基类的构造方法必须写在子类构造方法的第一行。

    5.如果子类的构造方法中没有显示的调用基类的构造方法,那么系统自动调用基类中没有参数的构造方法。

    6.如果子类的构造方法中既没有显示的调用基类的构造方法,而且基类中也没有无参数的构造方法,则编译出错。

    class A {
     protected void print (String s) {
      System.out.println(s);
     }
     A () {
      print ("A()");
     }
     public void f() {
      print("A:f()");
     }
    }
    public class B extends A{
     B(){
      print("B()");
     }
     public void f(){
      print("B:f()");
     }
     public static void main(String[] args){
      B b = new B();
      b.f();
     }
    }

    分析程序输出结果,首先new出一个新对象b,即调用B的构造方法。由于B 是继承A类的,所以B必须继承A的构造方法,在B的构造方法中没有使用super(argument_list)调用A的构造方法,所以系统默认B 调用A中没有参数的构造方法,随即输出A()。接下来顺序执行B的构造方法,输出B()。最后程序调用b.f(),在B中f()是重写A中的f(),即将A中的f()覆盖,所以输出B:f()。

    综上,输出结果为:A()

                      B()

                      B:f()

  • 相关阅读:
    IoC~MVC3+EF+Autofac实现松耦合的系统架构
    IoC~高效的Autofac
    Autofac 依赖注入框架 使用
    C# socket编程实践——支持广播的简单socket服务器
    简单理解Socket
    利用html 5 websocket做个山寨版web聊天室(手写C#服务器)
    c# 实现WebSocket
    oracle中clob字段的使用
    查找程序加载的动态库的路径
    wordpress在window下完美实现301重定向的方法
  • 原文地址:https://www.cnblogs.com/zgeek/p/4908513.html
Copyright © 2011-2022 走看看