• 覆盖(重写),重构,重载的区别


    1:重构:

    重构, 是对软计设计方法的描述, 这个层面是架构和设计方法,例如有一个文档一开始叫做:names.txt,过几天你发现这个文档的名字怎么看怎么不顺眼,就是想改名字,这可以叫做是重构。

    重构是一个软件维护的通用技巧, 重构的具体做法, 可以通过重写或者重载等, 但不限于此, 更改注释, 更改函数名类名等,都可以称之为重构,重构的目的是为了让软件容易维护, 修改其Bug等.

    2:重载:

    重载(Overload)就是通过方法的参数识别不同的函数

    例如我们对构造函数的重载:

     1 package chongzai;
     2 
     3 public class Overloads {
     4     private String name;
     5     private int age;
     6     private String loc;
     7     private String sex;
     8     private int cour;
     9     
    10     public Overloads(String name, int age, String loc, String sex, int cour) {
    11         super();
    12         this.name = name;
    13         this.age = age;
    14         this.loc = loc;
    15         this.sex = sex;
    16         this.cour = cour;
    17     }
    18 
    19     public Overloads(String name, int age) {
    20         super();
    21         this.name = name;
    22         this.age = age;
    23     }
    24     
    25     public Overloads(String name, int age, String loc, String sex) {
    26         super();
    27         this.name = name;
    28         this.age = age;
    29         this.loc = loc;
    30         this.sex = sex;
    31     }
    32     
    33 }

    重载的规则:

    1、必须具有不同的参数列表;

    2、可以有不同的返回类型,只要参数列表不同就可以;

    3、可以有不同的访问修饰符;

    4、可以抛出不同的异常;

    5、方法能够在一个类中或者在一个子类中被重载。

     

     

    3:覆盖(重写):

    override(Overwrite)是子类覆盖基类的方法.

     

    package chongzai;
    
    public class Father {//父类
        public void out(){
            System.out.println("woshigg");
        }
    }

     

     1 package chongzai;
     2 
     3 public class Son extends Father{//子类
     4     @Override
     5     public void out() {
     6         // TODO Auto-generated method stub
     7         System.out.println("aaaaaaaaaaaaa");
     8         System.out.println("bbbbbbbbbbbb");
     9     }
    10 }

    子类不想使用父类默认继承过来的方法,自己对方法进行改造;

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    iOS 微信支付SDK与微信友盟分享两者同时集成时,出现的问题与解决之路。
    Object-C语言Block的实现方式
    使用Mac命令别名,提升工作效率
    利用OC对象的消息重定向forwardingTargetForSelector方法构建高扩展性的滤镜功能
    渐变色进度条的两种绘制方案
    设计模式应用场景之Model设计中可以用到的设计模式
    有趣的赫夫曼树
    技术团队管理者的问题视角
    SSH安全登陆原理:密码登陆与公钥登陆
    为什么HashMap继承了AbstractMap还要实现Map?
  • 原文地址:https://www.cnblogs.com/GH0522/p/8178650.html
Copyright © 2020-2023  润新知