• 构造方法和方法的重载


    **
    * 方法重载就是在类中可以写多个方法名相同的方法,但这些方法除了方法名相同外,其参数类型,参数个数
    * 和方法的返回值,都不相同。
    *
    *而构造方法就是一种特殊的方法,其的方法名必须和类名相同。
    *构造方法没有返回值类型,没有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."); } }

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

  • 相关阅读:
    【题解】【BT】【Leetcode】Populating Next Right Pointers in Each Node
    【题解】【BT】【Leetcode】Binary Tree Level Order Traversal
    【题解】【BST】【Leetcode】Unique Binary Search Trees
    【题解】【矩阵】【回溯】【Leetcode】Rotate Image
    【题解】【排列组合】【素数】【Leetcode】Unique Paths
    【题解】【矩阵】【回溯】【Leetcode】Unique Paths II
    【题解】【BST】【Leetcode】Validate Binary Search Tree
    【题解】【BST】【Leetcode】Convert Sorted Array to Binary Search Tree
    第 10 章 判断用户是否登录
    第 8 章 动态管理资源结合自定义登录页面
  • 原文地址:https://www.cnblogs.com/zhanggongchang/p/3910591.html
Copyright © 2020-2023  润新知