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);

        }

        }

     

     

  • 相关阅读:
    C# 对XML操作-实例
    XML
    得到一个随机数组的方法
    Node Redis 小试
    Hexo快速搭建静态博客并实现远程VPS自动部署
    substr.js 字符串切割
    GraphicsMagick 学习笔记
    store.js 跨浏览器的localStorage
    bodyParser中间件的研究
    Sublime Text 使用指南
  • 原文地址:https://www.cnblogs.com/cdtarena/p/3115677.html
Copyright © 2011-2022 走看看