zoukankan      html  css  js  c++  java
  • java 方法的重载重写

    面向对象有三大特性:封装,继承,多态

    多态则需要满足三大条件1要有继承2要有重写3父类引用子类对象

    很多人对方法的重载重写有很大疑问,下面我来介绍一下方法的重载重写

    方法重载就是方法名称重复,加载参数不同

    满足的条件:

    一.方法名一定要相同。
    二.方法的参数表必须不同,包括参数的类型或个数,以此区分不同的方法体。
    1.如果参数个数不同,就不管它的参数类型了!
    2.如果参数个数相同,那么参数的类型必须不同。
    三.方法的返回类型、修饰符可以相同,也可不同。
    class MethodOverloading {
     
        void receive(int i) {
            System.out.println("Received one int data");
            System.out.println("i="+i);
        }
         
        void receive(float f) {
            System.out.println("Received one float data");
            System.out.println("f="+f);
        }
         
        void receive(String s) {
            System.out.println("Received a String");
            System.out.println("s="+s);
        }
         
        public static void main(String [] args){
            MethodOverloading m = new MethodOverloading();
            m.receive(3456);
            m.receive(34.56f);
            m.receive("方法重载");
        }
    }
    那么什么是方法的重写呢
    方法的重写又称为覆盖方法
    是子类对父类定义方法的逻辑进行修改

    public class Wine {
    public void fun1(){
    System.out.println("Wine 的Fun.....");
    fun2();
    }

    public void fun2(){
    System.out.println("Wine 的Fun2...");
    }
    }

    public class JNC extends Wine{
    /**
    * @desc 子类重载父类方法
    * 父类中不存在该方法,向上转型后,父类是不能引用该方法的
    * @param a
    * @return void
    */
    public void fun1(String a){
    System.out.println("JNC 的 Fun1...");
    fun2();
    }

    /**
    * 子类重写父类方法
    * 指向子类的父类引用调用fun2时,必定是调用该方法
    */
    public void fun2(){
    System.out.println("JNC 的Fun2...");
    }
    public static void main(String[] args) {
    Wine a = new JNC();
    a.fun1();
    }
    }

  • 相关阅读:
    Html5——视频标签使用
    Android的四大组件
    Android 硬编码
    按键事件处理
    android Keycode 完全对照表
    Activity的生命周期
    音乐播放控制
    Android permission 访问权限大全
    制作留言板相关资料
    adb查询log命令
  • 原文地址:https://www.cnblogs.com/zhangzhiqin/p/8011882.html
Copyright © 2011-2022 走看看