Java连载45-继承举例、方法覆盖
一、Java语言中假设一个类没有显式的继承任何类,那么该类默认继承Java SE库中提供的java.lang.Object类
1.快捷键:Ctrl + shift + T:可以在Myeclipse中查找类
2.快捷键:Ctrl + shift + R:可以在Myeclipse中查找资源
继承类举例:
package com.bjpowernode.java_learning; public class D45_1_ extends Extend1 { public static void main(String[] args) { D45_1_ d1 = new D45_1_(); System.out.println(d1.toString());//说明继承了JavaSE默认的类 System.out.println(d1.a);//继承了Extend1这个类,其实继承就是指把父类的代码都拿到子类里面 //不能继承构造方法和私有实例变量 } } class Extend1 { int a; }
回顾一下:
方法重载和返回值类型,和修饰符列表是没有关系的。
方法重载的条件:在同一个类中;方法名相同;参数列表不同(包括顺序、类型、个数)
二、方法的覆盖
1.方法覆盖又被称为方法重写,英文名称:override\overwrite
2.什么时候使用方法重写
当父类中的方法已经无法满足当前子类的业务需求,子类有必要将父类中继承过来的方法机型重新编写,这个重新编写的过程称为方法重写/方法覆盖
3.什么条件下才会发生方法覆盖
(1)方法重写发生在具有继承关系的父子类之间;
(2)返回值类型相同,方法名相同,形式参数列表相同
(3)方法重写的时候,访问权限不能变得更低,比如:原来的函数是public的,继承的类必须比public更大,或者平级,不能是protected这种更小的权限
(4)方法重写的时候,抛出异常不能更多,可以更少或一样多。(这个后面再讲)
4.建议方法重写的时候尽量复制粘贴,不要编写,容易出错,导致没有产生覆盖。
5.注意点:
(1)私有方法不能继承,所以不能覆盖;(2)构造方法不能继承,所以不能覆盖;(3)静态方法不存在覆盖;(4)覆盖只针对方法不包含属性变量。
package com.bjpowernode.java_learning; public class D45_2_MethodCover { public static void main(String[] args) { Animal1 a1 = new Animal1(); a1.name = "jfai"; a1.move(); Bird1 b1 = new Bird1(); b1.name = "jfioaweh"; b1.move(); } } class Animal1{ String name; public void move() { System.out.println(this.name+"正在移动"); } } class Bird1 extends Animal1{ public void move() { System.out.println(this.name+"不再移动");//方法重写, } }
6.生成override的快捷方法:
source-生成方法覆盖
五、源码:
D45_1_InheritClassExample.java
D45_2_MethodCover.java
地址:
https://github.com/ruigege66/Java/blob/master/D45_1_InheritClassExample.java
https://github.com/ruigege66/Java/blob/master/D45_2_MethodCover.java
2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)
3.博客园:https://www.cnblogs.com/ruigege0000/
4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料
Java连载45-继承举例、方法覆盖的更多相关文章
- [Java学习]面向对象-类的继承;方法覆盖
一.类的继承 实现方法: public Class SubClass extends SuperClass{ } 继承最基本作用: 代码重用. 继承最重要的作用: 方法可以重写. 关于类的继承: 子类 ...
- 【JAVA】笔记(4)---继承;方法覆盖;多态机制;super;
继承(extends): 1.作用:为方法覆盖和多态机制做准备:使代码得到复用(节省代码量): 2.格式: class 子类 extends 父类 3.理解继承:子类继承父类,其实就相当于把父类的类体 ...
- Java面向对象之继承,方法重写,super关键字,员工类系列继承题
在程序中,如果想声明一个类继承另一个类,需要使用extends关键字. 格式: class 子类 extends 父类 {} 继承的好处 1.继承的出现提高了代码的复用性,提高软件开发效率. 2.继承 ...
- 接口与继承:方法覆盖(super)
源代码 //父类Parent class Parent{ int x; int y; Parent() { x = ; y = ; } public void Set(int a,int b) { x ...
- 继承 & super & 方法覆盖
简单继承 细节1: 细节2: 子类创建对象,先 父类构造器,后 子类的构造器,因为(默认的super) 细节3: 假设父类只有一个有参构造器, 此时需要子类用上super给定父类参数,才能通过编译 ...
- Java类的继承与方法调用的一个小问题
public class Father { protected void server(int i){ switch (i){ case 1: methodone(); break; case 2: ...
- 牛客网Java刷题知识点之方法覆盖(方法重写)和方法重载的区别
不多说,直接上干货! https://www.nowcoder.com/ta/review-java/review?query=&asc=true&order=&page=6 ...
- Java连载44-静态代码块、实例代码块、继承
一.可以使用static关键字来定义“静态代码块” 1.语法规则 static { java语句: } 2.静态代码块在类加载时执行,并且只执行一次 3.静态代码块在一个类中可以编写多个,并且遵循自上 ...
- java基础疑难点总结之成员变量的继承,方法重载与重写的区别,多态与动态绑定
1.成员变量的继承 1.1要点 子类用extends关键字继承父类.子类中可以提供新的方法覆盖父类中的方法.子类中的方法不能直接访问父类中的私有域,子类可以用super关键字调用父类中的方法.在子类中 ...
随机推荐
- Android8.1 SystemUI源码分析之 Notification流程
代码流程 1.先看UI显示,StatuBar加载 CollapsedStatusBarFragment 替换 status_bar_container(状态栏通知显示区域) SystemUI\src\ ...
- C#数据采集用到的几个方法
这两天在做数据采集,因此整理了下数据采集要用到的一些方法.因为我采集的数据比较简单,所以没有用到框架.比较有名的两个框架 HtmlAgilityPack 和 Jumony,感兴趣的可以研究下.当然,火 ...
- RMAN命令详解和常用汇总
RMAN命令详解和常用汇总转摘汇集,日后使用本文链接:https://blog.csdn.net/EVISWANG/article/details/50448370http://blog.itpub. ...
- Python升级后ssl模块不可用问题解决和浅析
在Cent0S 7.5下将Python 2.7.5升级到Python 3.6.6后,发现ssl模块不可用,具体详细信息如下所示: [root@db-server ~]# pip list Packag ...
- 深挖计算机基础:趣谈Linux操作系统学习笔记
参考极客时间专栏<趣谈Linux操作系统>学习笔记 核心原理篇:内存管理 趣谈Linux操作系统学习笔记:第二十讲 趣谈Linux操作系统学习笔记:第二十一讲 趣谈Linux操作系统学习笔 ...
- C语言程序设计100例之(19):欢乐的跳
例19 欢乐的跳 题目描述 一个n个元素的整数数组,如果数组两个连续元素之间差的绝对值包括了[1,n-1]之间的所有整数,则称之符合“欢乐的跳”,如数组1 4 2 3符合“欢乐的跳”,因为差的绝对 ...
- JavaScript中使用正则表达式
JavaScript中正则表达式的使用 创建正则对象 RegExp 对象是带有预定义属性和方法的正则表达式对象. 方式一: var reg = new RegExp("\d", ' ...
- OAuth2.0授权登录
最近工作中遇到了多系统间的授权登录,对OAuth2.0进行了学习研究,并总结备忘. [场景] 我们登录一些论坛等网站的时候,如果不想单独注册该网站账号,可以选择用微信或QQ账号进行授权登录. 这样的第 ...
- css实现左右两个div等高
提出问题: 现在有两个div,但是两个div里面内容多少不确定,可能左边多,可能右边多,css要如何设置可以保证左右两边的div等高呢? 解决方案: 每个div使用display:table-cell ...
- 案例:使用dbms_xplan.display_cursor无法获取执行计划
案例:使用dbms_xplan.display_cursor无法获取执行计划 环境:RHEL 6.5 + Oracle 11.2.0.4 在一次测试中发现使用dbms_xplan.display_cu ...