码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-02-18 18:47:49      阅读:29      评论:0      收藏:0      [点我收藏+]

标签:缩小   anim   oid   实例   http   pre   cat   lse   修饰符   

方法重载

方法重载就是在类的同种实现方式,到底采用哪种方式,取决与调用者给出的参数。方法重载特点是方法名相同,方法的参数类型,个数,顺序至少有一项不同,方法放回类型可以不同,方法的修饰符可以不同,只是放回类型不一样,不能构成重载

 

实例

 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.println("大的数(int型):" + c.add(2,1));
 7         System.out.println("大的数(float型):" + c.add(1.9f,0.3f));
 8     }
 9 }
10 
11 class Max
12 {
13     //定义方法
14     public int add(int a, int b)
15     {
16 
17         if(a>b){
18             return a;
19         }
20         else
21         {
22             return b;
23         }
24     }
25 
26     //重载方法
27     public float add(float a, float b)
28     {
29         if(a>b){
30             return a;
31         }
32         else
33         {
34             return b;
35         }
36     }
37 }

 

运行结果

技术图片

 

方法覆盖

子类可以继承父类的属性和方法,这样可以提高代码的复用性,这个很号,但问题来了,如果父类与子类都定义一个叫cry的方法,那调用者调用此方法时是用哪个呢?规则是这样的,父类与子类都有这个方法时,子类的cry方法会覆盖父类的cry方法,当只有父类有这个方法,就直接调用父类的,子类也是相同的。

 

注意事项

Ⅰ.子类的方法的返回类型,参数方法名称,要和父类方法的返回类型,参数,方法名称完全一样,否则编译出错。

Ⅱ.子类方法不能缩小父方法的访问权限。

 

实例

 1 package com.beekc.www;
 2 
 3 public class Beekc {
 4     public static void main(String[] args) {
 5         Cat cat = new Cat();
 6         cat.cry();
 7         Dog dog = new Dog();
 8         dog.cry();
 9     }
10 }
11 
12 class Animal
13 {
14     int age;
15     String name;
16     public void cry()
17     {
18         System.out.println("我是动物,系统不知道怎么叫!");
19     }
20 }
21 
22 class Cat extends Animal
23 {
24     public void cry()
25     {
26         System.out.println("我是猫,喵喵叫~");
27     }
28 }
29 
30 class Dog extends Animal
31 {
32 
33 }

 

运行结果

技术图片

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

标签:缩小   anim   oid   实例   http   pre   cat   lse   修饰符   

原文地址:https://www.cnblogs.com/beekc/p/12326948.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!