方法重载

方法重载

好久不见. 提交于 2020-02-13 02:38:32
package com.qingfeng; /** * * @author win7 *功能:方法重载 why how */ public class Demo3_7 { public static void main(String[] args) { // TODO Auto-generated method stub Ab a1= new Ab(); System.out.println("a和b较大的是:"+ a1.getMax(6,5) ); //6,5 5.5,2.3 } } class Ab{ //返回两个int中较大的数 public int getMax(int a, int b) { //getMax() if(a >= b) return a; return b; } //返回两个float较大的数 public float getMax(float a, float b) {//getMax() if(a >= b) return a; return b; } } 方法重载:类的同一种功能的多种实现方式,到底采用哪种方式,取决于调用者给出的参数。 解决的问题:对象调用同一种功能的多个方法时,不用再改变方法名称,Java可以根据参数类型自动选择适配的方法。 注意事项:1.方法名相同;      2.方法的 参数类型,个数,顺序 至少有一项不同;      3

Java中方法重写和方法重载

徘徊边缘 提交于 2020-02-13 02:37:35
首先方法重写和方法重载是建立在Java的面向对象的继承和多态的特性基础上而出现的。至于面向对象的继承和多态的特性我就不在这里多说了。继承是指在一个父类的基础再创建一个子类,这样子类就拥有了父类的非私有的特性,同时子类还可以扩展自己的特性,这样就引出了方法重写和方法重载! 一、方法重写(Override) 在Java中如何来定义重写:Java程序中类的继承特性可以产生一个子类,子类继承父类就拥有了父类的非私有的属性(方法和变量),在子类中可以增加自己的属性(方法和变量),同时也可以对父类中的方法进行扩展,以增强自己的功能,这样就称之为重写,也称为复写或者覆盖。 所谓方法重写就是子类的方法和父类中继承下来的方法具有完全相同的方法名、返回值类型、方法的参数个数以及参数类型,这样才能被称为方法重写。 代码体现: // 这是父类的定义 public class Person { public void eat() { System.out.println("=====这是父类Person的eat方法======="); } } // 这是子类的定义 public class Student extends Person { @Override public void eat() { System.out.println("===这是子类Student的eat方法==="); } //

JAVA多态,重载(overload)与重写(override)的区别

梦想与她 提交于 2020-02-12 00:31:38
文章目录 方法重载 方法重写 多态是指不同子类型的对象对同一消息做出不同的反应。 多态的好处是提高了代码的可扩展性。 多态的实现要满足以下前提: 方法重写(子类继承父类,并重写父类已有的或抽象的方法) 对象造型(用父类型的引用指向子类型的对象,这样同样的引用调用同样的方法就会根据子类对象的不同而表现不同的行为) 比如: List test = new ArrayList(); 多态的实现方式包括方法重载(overload)与方法重写(override)。 方法重载 重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。 每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。最常见的就是构造器的重载。 方法重写 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。 方法重载与方法重写的区别: 区别点 方法重载 方法重写 参数列表 必须修改 一定不能修改 返回类型 可以修改 一定不能修改 异常 可以修改 可以减少或删除,一定不能抛出新的或者更广的异常 访问 可以修改 一定不能做更严格的限制(可以降低限制) 来源: CSDN 作者: westwewe 链接: https://blog.csdn.net/westwewe/article

c++ 面试整理

别说谁变了你拦得住时间么 提交于 2020-02-11 02:58:10
1. 继承方式 public   父类的访问级别不变 protected 父类的public成员在派生类编程protected,其余的不变 private 父类的所有成员变成private #include <iostream> using namespace std; class base { public: void printa() { cout <<"base"<< endl; } protected: void printhello() { cout <<"helo"<< endl; } private: void printnohello() { cout <<"no hello"<< endl; } }; class derived : public base { public: void printb() { printhello(); } // void printc() { printnohello(); } //printnohello是父类的私有函数,不可访问 }; int main() { base a; a.printa(); //a.printhello(); //printhello是类derived的protected函数,不可访问。 } 2. sizeof 和 strlen 的区别 sizeof 是一个操作符,strlen 是库函数。

java中的方法重载

我与影子孤独终老i 提交于 2020-02-10 14:18:22
方法的重载主要是结局同一个方法,但参数不同的问题    举一个例子,比较两个整数的大小 和比较两个浮点数的大小 public class Testmax { /** 主方法 */ public static void main(String[] args) { int i = 5; int j = 2; int k = max(i, j); System.out.println( i + " 和 " + j + " 比较,最大值是:" + k); float n= 2.3F; float m=24.5F; float c=max(n,m); System.out.println(n+"he"+m+"zuidashi"+c); } /** 返回两个整数变量较大的值 */ public static int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; } public static float max(float num1,float num2) { float result; if(num1>num2) result=num1; else result=num2; return result; } }   方法名是相同的

细说@Html.ActionLink()的用法

偶尔善良 提交于 2020-02-08 17:52:01
https://www.cnblogs.com/sunshineground/p/4360469.html 一、@Html.ActionLink()概述    在MVC的Rasor视图引擎中,微软采用一种全新的方式来表示从前的超链接方式,它代替了从前的繁杂的超链接标签,让代码看起来更加简洁。通过浏览器依然会解析成传统的a标签。除此之外,还允许我们添加Html属性。下面来看看@Html.ActionLink()的使用方法吧。 二、@Html.ActionLink()的使用详解   1. @Html.ActionLink("linkText", "actionName")   这种重载的第一个参数是该链接要显示的文字,第二个参数是对应的控制器的方法(Action),默认控制器为当前页面对应的控制器。   例如,当前页面的控制器为ProductsController:@Html.ActionLink("detial", "Detial")会生成<a href="/Products/Detail">detail</a>   2. @Html.ActionLink("linkText", "actionName", "controllerName")    该重载比第一个重载多了一个参数,他指定了控制器的名称。   例如,@Html.ActionLink("detail", "Detail"

c++学习记录(七)

南楼画角 提交于 2020-02-08 00:15:41
c++学习实践之重载 重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同 c++类中有重载运算符和重载函数 重载函数 声明多个相似但形式参数个数或者类型不同的函数,编译器通过把你所使用的参数类型与定义中的参数类型进行比较,决定选用最合适的定义。 (1)例子 #include<iostream> using namespace std; class Num { public: void print(int a) { cout << "返回整数:" << a << endl; } void print(double a) { cout << "返回浮点数:" << a << endl; } }; int main() { Num num; num.print(1); num.print(1.11111); } (2)分析 Num类中有两个函数名相同但形参类型不同的函数,调用相同函数,输入不同类型数据,编译器会自动选取合适的函数输出结果 (3)结果 重载运算符 重载的运算符是带有特殊名称的函数,函数名是由关键字 operator 和其后要重载的运算符符号构成的。与其他函数一样,重载运算符有一个返回类型和一个参数列表。大多数的运算符可以重载,以下运算符不可重载。 .成员访问运算符 . , -> 成员指针访问运算符 ::域运算符

C++ 继承的多态性: 重载父类函数(虚方法)

社会主义新天地 提交于 2020-02-07 21:49:42
C++ 的继承复杂, 在 上一章 中讲解了基础部分 在用的时候不妨会想到: 如果在派生类中重载了基类的函数呢? 那么这就是本篇要讲的----继承的多态性. 百度百科 中对继承的多态性有详细的解释:   多态性就是 多种表现形式 ,具体来说,可以用" 一个对外接口,多个内在实现方法 "表示。举一个例子,计算机中的堆栈可以存储各种格式的数据,包括整型,浮点或字符。不管存储的是何种数据,堆栈的算法实现是一样的。针对不同的数据类型,编程人员不必手工选择,只需使用统一接口名,系统可自动选择。   C++的多态性:在基类的函数前面加上 virtual 关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数。 父类被标有 virutual 的函数称为: 虚方法 . 在子类中重载基类的函数只要在父类函数声明部分加上 override 关键字即可. 再说白一点, 也就是将父类某函数的功能替换掉了, 但是函数的 '外观' 没有变: #include <iostream> class Father { public: virtual void get() // 创建了一个虚方法 { std::cout<<"Father"<<std::endl; } }; class Child: public

operator介绍

社会主义新天地 提交于 2020-02-05 05:47:09
operator是C++的关键字,它和运算符一起使用,表示一 个运算符函数,理解时应将operator=整体上视为一个函数名。 这是C++扩展运算符功能的方法,虽然样子古怪,但也可以理解:一方面要使运算符的使用方法与其原来一致,另一方面扩展其功能只能通过函数的方式(c++中,“功能”都是由函数实现的)。 一、为什么使用操作符重载? 对于系统的所有操作符,一般情况下,只支持 基本数据类型和标准库中提供的class,对于用户自己定义的class,如果想支持基本操作,比如比较大小,判断是否相等, 等等,则需要用户自己来定义关于这个操作符的具体实现。比如,判断两个人是否一样大,我们默认的规则是按照其年龄来比较,所以,在设计person 这个class的时候,我们需要考虑操作符==,而且,根据刚才的分析,比较的依据应该是age。那么为什么叫重载呢?这是因为,在编译器实现的时候,已经为我们提供了这个操作符的基本数据类型实现版本,但是现在他的操作数变成了用户定义的数据类型class,所以,需要用户自己来提供该参数版本的实现。 二、如何声明一个重载的操作符? A: 操作符重载实现为类成员函数 重载的操作符在类体中被声明,声明方式如同普通成员函数一样, 只不过他的名字包含关键字 operator ,以及紧跟其后的一个c++预定义的操作符 。 可以用如下的方式来声明一个预定义的==操作符: class

C# 方法重载计算矩形、三角形、圆的面积

风格不统一 提交于 2020-02-04 09:12:46
同样计算,精度一致 重载,可以加标识参数! 定义和调用要分清楚 把方便留给最终的使用者! //定义端 》复用 方便Unity C#都可以使用 public class AreaClass { /// <summary> /// 计算圆的面积 /// </summary> /// <param name="radius">半径</param> public float AreaCaculate(float radius) { float area = (float)(radius * radius * Math.PI); return area; } /// <summary> /// 计算矩形面积 /// </summary> /// <param name="x">长</param> /// <param name="y">宽</param> public float AreaCaculate(float l, float w) { float area = l * w; return area; } /// <summary> ///计算三角形面积 加标识 加个参数 区别 /// </summary> /// <param name="Bottom">底</param> /// <param name="height">高</param> /// <param name=