• 构造方法和方法的重载


    **
    * 方法重载就是在类中可以写多个方法名相同的方法,但这些方法除了方法名相同外,其参数类型,参数个数
    * 和方法的返回值,都不相同。
    *
    *而构造方法就是一种特殊的方法,其的方法名必须和类名相同。
    *构造方法没有返回值类型,没有void
    *构造方法不能从父类中继承
    *构造方法可以重载,一个class可以有多个构造方法,不同的对象根据参数的不同
    * 选择合适的构造方法。
    * 构造方法不能直接通过方法名来引用,必须用new运算符
    * 在构造方法中可以调用当前类和其父类的另一个构造方法,但必须是方法体的第一条语句。

       如果一个构造方法中中的第一条没有用super来调用父类的构造方法,则编译器也会默认在构造方法中用super()语句调用

      无参的构造方法

       但是,如果构造方法的第一句是用this来调用本类中的另外一个构造方法,那么他就不会再默认调用super()
    * 使用当前类的构造方法用this来引用,使用父类的构造方法用super来引用
    *   super有三种情况:

         用来访问父类中被覆盖的方法

         用来访问父类中的构造方法、

         用来访问父类中被隐藏的成员变量。
    *其为类的方法中的变量赋初始值。
    * /

    下面我们先建一个父类

     1 import javax.swing.Spring;
     2 
     3 public class overloading {
     4     
     5 /**
     6  * 方法重载就是在类中可以写多个方法名相同的方法,但这些方法除了方法名相同外,其参数类型,参数个数
     7  * 和方法的返回值,都不相同。
     8  * 
     9  *而构造方法就是一种特殊的方法,其的方法名必须和类名相同。
    10  *构造方法没有返回值类型,没有void
    11  *构造方法不能从父类中继承
    12  *构造方法可以重载,一个class可以有多个构造方法,不同的对象根据参数的不同
    13  *  选择合适的构造方法。
    14  * 构造方法不能直接通过方法名来引用,必须用new运算符
    15  * 在构造方法中可以调用当前类和其父类的另一个构造方法,但必须是方法体的第一条语句
    16  *   使用当前类的构造方法用this来引用,使用父类的构造方法用super来引用
    17  *
    18  *其为类的方法中的变量赋初始值。
    19  * /
    20  */
    21   public Spring d;
    22   public overloading() {
    23     // TODO Auto-generated constructor stub
    24       System.out.println(" i am the frist method! I do not have parameter");
    25 }
    26   public void overloading() 
    27   {
    28     // TODO Auto-generated method stub
    29    System.out.println("I am the method 2! I have not return value!");
    30   }
    31   public overloading(String d)
    32   {
    33       
    34       
    35    //   d="33";如果在此对d赋值,则下面的overloading ol2 =new overloading("3");的赋值将会
    36   //被覆盖,即,输出的结果里d的值为33不是3
    37       System.out.println(d);
    38   }
    39   
    40 public static void main(String[] args) {
    41     //类的实例化
    42     overloading ol=new overloading();
    43     ol.overloading();
    44     overloading ol2 =new overloading("3");
    45 }
    46 
    47 }

    然后再子类中继承父类,并调用父类中的方法:

    public class suboverclass extends overloading{
    
            //subclass的构造方法
               public suboverclass() {
                // TODO Auto-generated constructor stub
                //调用父类的构造方法(do  not have parameter)  
                   super();
                //invoke a normal method from father class
                   super.overloading();
    System.out.println(
    "I am a constructor stub in subclass."); } public suboverclass(String c){ //subclass的构造方法2(have a parameter) super("I am a constructor method and have a parameter."); System.out.println("I am a constructor stub in subclass."+c); } public static void main(String[] args) { //无参构造方法 suboverclass sub =new suboverclass(); suboverclass sub2=new suboverclass("and I invoke the method from farther class overloading."); } }

    指的注意的是调用父类方法时,调用普通方法和构造方法的区别。

  • 相关阅读:
    学习记录18
    学习记录17
    学习记录16
    小白的心酸连网历程
    学习记录15
    学习记录14
    学习记录13
    学习记录12
    学习记录10
    语法糖
  • 原文地址:https://www.cnblogs.com/zhanggongchang/p/3910591.html
Copyright © 2020-2023  润新知