zoukankan      html  css  js  c++  java
  • 面向对象方法的重载(overloading)和覆盖(overriding)。

     

    在有些JAVA书籍中将overriding称为重载,overloading称为过载。

    Overloading在一个类中可以定义多个同名方法,各个方法的参数表一定不同。但修饰词可能相同,返回值也可能相同。

    在程序的编译过程中根据变量类型来找相应的方法。因此也有人认为 overloading是编译时的多态,以后我们还会学到运行时多态。

     

    为什么会存在overloading技术呢?作为应对方法的细节。

    利用类型的差异来影响对方法的调用。

    吃()可以分为吃肉,吃菜,吃药,在一个类中可以定义多个吃方法。

     

    构造方法也可以实现overloading。例:

    public  void  teach(){};

    public  void  teach(int a){};

    public  void  teach(String a){}为三种不同的方法。

     

    Overloading方法是从低向高转。

    Byteshortfloatintlongdouble

     

    在构造方法中,this表示本类的其他构造方法:

    student(){};

    student(string n){

      this();//表示调用student()

    }

    如果调用student(int a)则为this(int a)

    特别注意:用this调用其他构造方法时,this必须为第一条语句,然后才是其他语句。

     

    This表示当前对象。

     

    Public  void  printNum(){

      Int number=40

      System.out.println(this.number);

    }

    此时打印的是实例变量,而非局部变量,即定义在类中而非方法中的变量。

     

    This.number表示实例变量。

    谁调用this.number那么谁即为当前(this)对象的number方法。

     

    封装:使对象的属性尽可能私有,对象的方法尽可能的公开。用private表示此成员属性为该类的私有属性。

  • 相关阅读:
    算法分析之最大子段求和(一)
    算法分析之动态规划
    算法分析之数字三角形逆推
    算法分析之递归与分治策略
    算法分析之汉诺塔问题
    算法分析之猴子吃桃
    基于python玩转人工智能最火框架之TensorFlow人工智能&深度学习介绍
    win10 64下anaconda4.2.0(python3.5)
    PYTHON 爬虫 baidu美女图片
    falkonry
  • 原文地址:https://www.cnblogs.com/borter/p/10743969.html
Copyright © 2011-2022 走看看