zoukankan      html  css  js  c++  java
  • Java中overload和override的区别

    转自:http://www.cdtarena.com/javapx/201304/8413.html

    1.方法重载(overload

     

    概念:简单的说:方法重载就是类的同一种功能的多种实现方式,到底采用哪种方式,取决于调用者给出的参数。

     

    注意事项:

     

    (1)方法名相同

     

    (2)方法的参数类型、个数、顺序不至少有一项不同

     

    (3)方法返回类型可以不同

     

    (4)方法的修饰符可以不同

     

    如果只是返回类型不一样,不能够构成重载

     

    如果只是控制访问修饰符号不一样,也是不能构成重载的

    Overloaded的方法是可以改变返回值的类型。

     

    2.方法覆盖(override

     

    概念:简单的说:方法覆盖就是子类有一个方法,和父类的某个方法的名称、返回类型参数一样,那么我们就说子类的这个方法覆盖了父类的那个方法。

     

    注意事项:方法覆盖有很多条件,总的讲有两点一定要注意:

     

    (1)子类的方法的返回类型,参数,方法名称,要和父类方法的返回类型,参数,方法名称完全一样,否则编译出错。

    (2)  子类方法不能缩小父类方法的访问权限(反过来是可以的)

    例:

    Overrride实例

    class A{

        public int getVal(){

        return(5);

        }

        }

        class B extends A{

        public int getVal(){

        return(10);

        }

        }

        //www.cdtarena.com

        public class override {

        public static void main(String[] args) {

        B b = new B();

        A a= (A)b;//把 b 强 制转换成A的类型

        int x=a.getVal();

        System.out.println(x);

        }

        }

        Overload实例

        package com.guonan;

        //Demostrate method voerloading.

        class OverloadDemo {

        void test(){

        System.out.println("NO parameters");

        }

        void test(int a){

        System.out.println("a:"+a);

        }//end of Overload test for one integer parameter.

        void test(int a, int b){

        System.out.println("a and b:"+a+" "+b);

        }

        double test(double a){

        System.out.println("double a:"+a);

        return a*a;

        }

        }

        class Overload{

        public static void main(String[] args) {

        OverloadDemo ob = new OverloadDemo();

        double result;

        ob.test();

        ob.test(10);

        ob.test(10, 20);

        result = ob.test(123.25);

        System.out.println("Result of ob.test(123.25):"+result);

        }

        }

     

     

  • 相关阅读:
    我是5型
    现在的我,有两个状态。我要去找第三个
    什么是BNF范式,什么又是EBNF范式?
    又是好久不写日志
    语料库资源汇总
    原生js与css3结合的电风扇
    JavaScript基础2
    JavaScript基础1
    JavaScript基础4
    JavaScript基础3
  • 原文地址:https://www.cnblogs.com/cdtarena/p/3115677.html
Copyright © 2011-2022 走看看