zoukankan      html  css  js  c++  java
  • 重载与重写

    重载与重写

           面对重载与重写有时会像失忆一样,将这两个内容搞混。

    在实际运用中。我们通常是不会混的。

    但在给别人讲述的过程中,可能会出现张冠李戴将两个名词搞混,这是不利于传播的。

    让我们来一起加深一下:

    重载:同样函数名称,不同參数或不同參数类型。举个样例:

    class Oneclass {
    	public int count(int a,int b) {		//两个正整数加法
    		return a+b;
    	}
    
    	public double count(double a,double b) {		//带小数的两数相加
    		return a+b;
    	}
    
    	public double count(double a,string operate,double b) {	//多位数的加减乘除运算
    		switch (operate) {
    			case “+”
    				return a + b;
    			case “-”
    				return a - b;
    			case “*”
    				return a * b;
    			case “/”
    				return a / b;
    		}
    	}
    }

    这三个类的count()方法就构成了重载关系。

    非常easy就能得出对同一对象的同名方法的调用,正是依靠这參数的不同来区分调用的是哪一个方法。

     

    重写:子类对父类方法的不同实现。即方法体(函数体)运行内容不同。

    //父类:Animal
    class Animal{
    	string food = “食物”;
    	public string eat() {
    		return this.food;			//父类对eat()的实现
    	}
    }
    
    //子类1:Cat
    class Cat extends Animal{	
    	public string eat() {
    		return this.food = “老鼠”;		//子类对eat()的新实现1
    	}
    }
    
    //子类2:Wolf
    class Wolf extends Animal{
    	public string eat() {
    		return this.food = “羊”;		//子类对eat()的新实现2
    	}
    }

    正是这样的重写。实现了多态。

     

           实际上,重载、重写都实现了多态。但重载是同一对象的同一函数名的不同本领;而重写则是尽管各子类对象详细同样的一个函数名。但各自因不同实现而不同。

  • 相关阅读:
    【校招面试 之 C/C++】第1题 为什么优先使用构造函数的初始化列表
    Linux平台ORACLE INSTANT客户端安装
    ORACLE数据库链接
    ORACLE用户管理
    【转】软件开发工具介绍之 6.Web开发工具
    【转】三大UML建模工具Visio、Rational Rose、PowerDesign的区别
    ORACLE数据库查看执行计划
    数据分析方法
    ORACLE对象大小写问题
    计算机改名引发的ORA
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/6852214.html
Copyright © 2011-2022 走看看