漫漫人生路,学点Jakarta基础-重写(覆盖)、重…
2018-06-18 02:56:37来源:未知 阅读 ()
首先我们现在开始进入Jakarta的时代,由原甲骨文易主到 Eclipse基金会下,但是不想舍弃java名字,因此基金会重新投票选出了Jakarta EE(雅加达)。但是我们明白换汤汤不换药的道理,基础是不变的因此重新温习。
温习概念
override:重写(=覆盖)-->一般在子类继承父类时,为了实现不同的功能,重写父类的方法。子类重写的方法与父类对应的方法的名称、返回类型、参数一样,存在垂直的关系。
overload:重载-->同一个类中方法之间的关系,这些方法的名称相同但是参数形式不同,因此存在水平的关系。重载是根据调用的时参表和形参表、参数顺序(参数类型不同)来选择方法。简单说就是:方法重载就是类的同一种功能的多种实现方式,到底采用哪一种方式,取决于调用者给出的参数。
规则
重载的规则:
1.方法名必须一样,参数形式不同(参数的类型、个数、顺序至少有一项是不同)。
1 package bank; 2 3 /** 4 * Created by zjc on 2018/3/8. 5 */ 6 public class overload 7 { 8 public float getCount(){ 9 return 0; 10 } 11 public int getCount(int a,int b){ 12 return a+b; 13 } 14 public float getCount(float a, float b){ 15 return a+b; 16 } 17 public float getCount(double c,float d){ 18 return (float)c+d; 19 } 20 private float getCount(float d,double c){ 21 return (float)c+d; 22 } 23 public static void main(String[] args) { 24 overload o = new overload(); 25 System.out.println( o.getCount(2.3f,2.4f)); 26 } 27 }
↑在此规则下:方法返回类型可以不同,方法的修饰符可以不同。
其中参数类型相同时,参数顺序前后没区别,不能构成重载。
2.不能通过访问权限、返回值类型、抛出异常进行重载(在1规则不符合的情况下);
2.1如果只是返回类型不一样:不能够构成重载。
2.2如果只是控制访问修饰符不一样:不能够构成重载。
3.方法的异常类型、数目不会对重载造成影响;
重写的规则
1.重写(子类)与被重写(父类)方法的返回类型、参数、方法名称要一模一样,否则会编译出错。
1 /** 2 * Created by zjc on 2018/3/8. 3 */ 4 public class override { 5 public static void main(String[] args) { 6 //创建一只猫 7 Cat cat = new Cat(); 8 cat.cry(); 9 Dog dog = new Dog(); 10 dog.cry(); 11 } 12 } 13 class Animal{ 14 int age; 15 String name; 16 17 public void cry(){ 18 System.out.println("我是动物,不知道怎么叫!"); 19 } 20 } 21 //加菲猫 22 class Cat extends Animal{ 23 //覆盖父类 24 public void cry(){ 25 System.out.println("喵喵叫!"); 26 } 27 } 28 //眼镜狗 29 class Dog extends Animal{ 30 //覆盖父类 31 public void cry(){ 32 System.out.println("旺旺叫!"); 33 } 34 }
2.重写(子类)不能缩小被重写(父类)方法的访问权限(public > protected > default > private)。
父类private 子类public这样可以重写
3.重写(子类)与被重写(父类)方法的抛出的异常要一致,或者是其子类。
4.被重写(父类)方法不能为private,否则子类只能定义新方法,不能进行重写。
5.静态方法不能被重写为非静态的方法(编译出错)。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:SSM整合开发
下一篇:Hibernate 学习(二)
- 这一篇带你学点儿 Java8 中的流式数据处理 2020-05-13
- 每天学点SpringCloud(八):使用Apollo做配置中心 2018-08-17
- 每天学点SpringCloud(八):使用Apollo做配置中心 2018-08-14
- 每天学点SpringCloud(八):使用Apollo做配置中心 2018-08-13
- 每天学点SpringCloud(三):自定义Eureka集群负载均衡策略 2018-07-12
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash