【面向对象】方法重载(转载)

【面向对象】方法重载

方法重载

1)方法重载:在同一个类的内部,方法名相同,参数不同

参数不同:指参数的类型、顺序(类型)、个数不同

跟参数的名字无关

案例:

public class Demo10 {

//设计一个计算器类,实现加法的操作,通过方法重载的方式,让类实现不同数据(int,double)的加法运算

public static void main(String[] args){

AddUtil addUtil = new AddUtil();

int sum1 = addUtil.add(12, 43);

System.out.println("两个整数相加:" sum1);

double sum2 = addUtil.add(23, 89.3);

System.out.println("一个int一个double相加:" sum2);

double sum3 = addUtil.add(23.23, 43);

System.out.println("一个double一个int相加" sum3);

double sum4 = addUtil.add(23.78, 89.3);

System.out.println("两个double相加" sum4);

}

}

class AddUtil{

int add(int a, int b){

return a b;

}

double add(int a, double b){

return a b;

}

double add(double a, double b){

return a b;

}

double add(double a, int b){

return a b;

}

}

2)方法重载好处:方便用户调用程序

eg:System.out.println("你好");

System.out.println(232);

System.out.println(423.3f);

System.out.println(‘你‘);

System.out.println(true);

println:sun写的方法重载,体现了方法重载的好处,我们可以通过println输出不同类型的数据,对于我们,只需要雇一个println的名字,就可以输出任何的数据。

3)方法重载属于多态的一种。

面向对象编程3大编程思想:封装、继承、多态

多态:事物在不同的情况,显示不同的特性

eg:很像变色龙

println方法,根据不同的参数,内部调用同名的不同的方法,输出不同类型的数据,体现了多态。

花:花钱,花心,梅花

4)返回值跟方法重载没有任何的关系,方法重载只与参数有关(一个类内部,方法名相同,参数不同)

5)构造方法支持方法重载:当创建对象(new)根据构造方法参数不同,调用不同的构造方法

eg: class User{

String name;

int

age;

double salary;

User(String name){

this.name

= name;

}

User(String name, int age, double salary){

this.name = name;

this.age = age;

this.salary = salary;

}

}

main(){

User user = new User("刘谦");

User user1 = new

User("刘",18,49999);

}

构造方法重载:创建对象的时候,根据参数的不同去调用与参数对应的构造方法。

原文链接

本文由豆约翰博客备份专家远程一键发布

时间: 2024-10-10 12:41:44

【面向对象】方法重载(转载)的相关文章

02-14 面向对象--方法重载、隐藏

在面向对象思想中,由于基本特性--继承所致,产生了子类继承父类的关系,所以出现重载方法. 由于子类对象同事“汇聚了”父类和子类的方法所有公共方法,而C#并未对子类和父类的方法名称过多的 加以限制,因此会出现一些问题. 如果子类中的某个方法与父类方法的签名一致(即方法名和方法参数一样),那当通过子类对象访问此方法时,访问的是子类方法还是父类方法? 这就需要先从子类方法和父类方法之间的关系说起,总的来说,子类方法和父类方法之间的关系可以概括为一下三种. 扩充:子类方法,父类没有: 重载:子类有父类的

Java面向对象----方法重载

方法重载(over load):方法名相同,参数列表不同,返回类型无关 package com.tanlei.newer; public class OverLoadDemo { public static void main(String[] args) { Printer printer=new Printer(1000); printer.print("hello"); printer.print(12); printer.print("hello", 12)

JAVA面向对象 - 方法重载与覆盖

方法重载 方法重载就是在类的同种实现方式,到底采用哪种方式,取决与调用者给出的参数.方法重载特点是方法名相同,方法的参数类型,个数,顺序至少有一项不同,方法放回类型可以不同,方法的修饰符可以不同,只是放回类型不一样,不能构成重载 实例 1 package com.beekc.www; 2 3 public class Beekc { 4 public static void main(String[] args) { 5 Max c = new Max(); 6 System.out.print

附录A培训实习生-面向对象基础(3):方法重载

就上一篇代码而言,你如果写Cat cat = new Cat();会直接报错错误 : 1       “Cat”方法没有采用“0”个参数的重载 E:\大话设计模式学习\BigDesignPatterns\附录A培训实习生之面向对象基础\动物运动会\AnimalGames\Form1.cs       20     23     AnimalGames 原因就是必要给小猫起名字.如果当真需要不起名字也要生出小猫来,可以采用方法重载. 方法重载提供了创建同名的多个方法的能力,但这些方法需使用不同的参

java面向对象编程(六)--四大特征之继承、方法重载和方法覆盖

一.继承 1.继承的概念 继承可以解决代码复用,让我们的编程更加靠近人类思维.当多个类存在相同的属性(变量)和方法时,可以从这些类中抽象出父类,在父类中定义这些相同的属性和方法,所有的子类不需要重新定义这些属性和方法,只需要通过extends语句来声明继承父类.语法如下: class 子类 extends 父类 这样,子类就会自动拥有父类定义的某些属性和方法.另外,并不是父类的所有属性.方法都可以被子类继承.父类的public修饰符的属性和方法,protected修饰符的属性和方法,默认修饰符属

js面向对象编程:如何实现方法重载

js中如何实现方法重载?这涉及到三个问题 1同名函数的调用问题 2函数中特殊的参数arguments 3如何利用arguments实现方法重载 1同名函数的调用问题 都知道在js中如果存在多个名称相同的函数,则调用实际每次都只使用最后一个,js其实是没有重载的,也就是说,如果定义了多个同名的函数,单参数不一样,在调用时,js不管参数个数,只管前后顺序 例如: function test1(arg1) { alert("参数1:"+arg1); } function test1(arg1

Java基础03 构造器与方法重载(转载)

显式初始化要求我们在写程序时就确定初始值,这有时很不方便.我们可以使用构造器(constructor)来初始化对象.构造器可以初始化数据成员,还可以规定特定的操作.这些操作会在创建对象时自动执行. 定义构造器 构造器(constructor)是一个方法.像普通方法一样,我们在类中定义构造器.构造器有如下基本特征: 构造器的名字和类的名字相同 构造器没有返回值 我们定义Human类的构造器: public class Test{    public static void main(String[

Java面向对象-方法的重载

Java面向对象-方法的重载 所谓方法的重载, 类里面有两个或者多个重名的方法,但是方法的参数个数.类型.顺序至少有一个不一样,这时候局构成方法重载: 上代码: 1 package com.java1234.chap03.sec03; 2 3 public class Demo01 { 4 5 int add(int a,int b){ 6 System.out.println("方法一"); 7 return a+b; 8 } 9 10 /** 11 * 方法的重载,参数个数不一样

面向对象(类,实例变量,方法定义,方法重载,构造方法,this,string类)

面向对象 类是由属性和方法组成 类是所有创建对象的模板 实例变量有默认值 实例变量至少在本类范围中有效 实例变量与局部变量冲突时,局部变量优先 类中方法定义类似于函数定义 修饰符 返回值类型 方法名(参数1,参数2) 异常{ 方法体 } 方法重载 参数个数不同 参数类型不同 参数类型相同但是顺序不同 传入参数的不同自动选取相应方法:典型例子system.out.println(整形,字符串等); 构造方法 1.构造方法无返回值 2.不定义的情况下,有默认的空构造方法 3.在对象构造时,被自动调用