码迷,mamicode.com
首页 > 其他好文 > 详细

重载和重写的区别

时间:2019-12-16 22:53:06      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:宠物   lse   类对象   引用   重载   manager   new   方法重载   调用   

方法重载(静态多态)
发生在同一个类中
方法名相同 参数不同 与返回值无关
会根据参数的不同调用对应的方法

方法重写(动态多态)
发生在有继承关系的两个类中
方法原型完全相同
子类对象调用此方法的时候,
总是会调用子类中的这个方法,
父类的那个会被隐藏

// 父类的引用指向了自己的子类实例
Employee emp = new Manager();
// 父类引用决定能干什么 子类对象决定怎么干
// emp.show("");
emp.show();

// 用来判断某一个引用中存放的实例是否是某一个类的实例
if(p1 instanceof Dog){
// 强制类型转换
Dog dog = (Dog)p1;
dog.guardEntrance();

}if else(p2 instanceof Cat){

Cat cat = (Cat)p2;
cat.huntMice();

}else{
System.out.println("这只是一个宠物");
}

重载和重写的区别

标签:宠物   lse   类对象   引用   重载   manager   new   方法重载   调用   

原文地址:https://www.cnblogs.com/jijijijibeibeibei/p/12051407.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!