java 方法重载和方法重写
2017-05-12 10:52
232 查看
方法重载
方法重载的特点:两同一不同,即同一个类中方法名相同,参数列表不同。public class Overload { //下面定义了两个test()方法,但方法的形参列表不同 //方法重载 public void test(){ System.out.println("无参数"); } public void test(String msg){ System.out.println("重载的test方法" + msg); } public static void main(String[] args){ Overload ol = new Overload(); ol.test(); ol.test("Hello"); } }
特别注意:java里不能用方法返回值类型作为区分方法重载的依据。
方法重写
public class Bird { //Bird类的fly方法 public void fly(){ System.out.println("我在天空里自由自在的飞翔"); } }
public class Ostrich extends Bird{ //重写Bird类的fly方法 public void fly(){ System.out.println("我只能在地上奔跑"); } public static void main(String[] args) { //创建Ostrich对象 Ostrich os = new Ostrich(); //执行Ostrich对象的fly()方法 os.fly(); } }
方法重写遵循“两同两小一大”规则,
“两同”即方法名相同,形参列表相同;
“两小”指的是子类方法返回值类型应比父类返回值类型更小或相等,
子类方法声明抛出的异常类应比父类方法声明抛出的异常类更小或相等;
“一大” 指的是子类方法的访问权限应比父类方法的访问权限更大或相等。
总结
方法重载:overload方法重写:override
两者区分的关键在于:方法重载发生在同一个类中多个同名方法之间,
方法重写发生在子类和父类的同名方法之间。
当然,父类和子类方法之间也可能发生重载,因为子类会获得父类方法,如果子类定义了一个与父类方法有相同的方法名,但参数列表不同的方法,就会形成父类方法和子类方法的重载。
相关文章推荐
- java中方法的重载与重写的区别
- java学习笔记九——构造函数、方法重写、重载
- java方法重写与重载
- java语言中方法重载overloading和方法重写(覆写)overriding的区别
- java中方法的重载与重写的区别
- java中方法的重载与重写的区别
- JAVA方法重载和方法重写
- Java 方法的重写与重载
- java方法的重载,重写,super,this,final关键字
- java中方法的重载与重写的区别
- JAVA方法重载与重写的区别
- 全新java初学者实践教程15(java SE5.0版)--jdk5中方法的重载与重写
- JAVA 方法的重写和重载
- Java里方法的重载与重写
- JAVA 方法重载,方法重写,继承
- Java中的重载方法与重写
- java方法的重载(Overload)与重写(Override)
- java方法的重载(Overload)与重写(Override)
- 黑马程序员-----java基础五(方法的重载与重写)
- java中方法的重写和重载分析