java中重写
1、重写【针对父类与子类而言】---------即java的多态性【子类与父类间有相同的名称和参数,此方法就被重写Overriding;又称:方法覆盖】
子类对父类的允许访问的方法的实现过程进行重新编写!返回值和形参都不能改变。即外壳不变,核心重写!
重写的好处在于子类可以根据需要,定义特定于自己的行为。
例如1:
package com.test.two; //父类
public class Animal { public void move(){
System.out.println("动物可以叫");
}
} package com.test.two; //子类继承父类
public class Dog extends Animal{
public void bark(){
System.out.println("狗可以叫");
}
public void move(){
System.out.println("狗可以移动");
}
} package com.test.two; public class DogTest {
public static void main(String[] args) {
Animal a = new Animal();//父类声明对象
Animal b = new Dog();//父类声明,子类创建
Dog c = new Dog();//子类声明,子类创建
a.move();
b.move();//执行的是子类中与父类共有的方法
// b.bark();--->The method bark() is undefined for the type Animal
c.move();
c.bark(); }
}
运行结果是:
动物可以叫
狗可以移动
狗可以移动
狗可以叫
结论:【子类可以由父类声明,也可以由子类声明】,父类声明子类创建的对象,执行的方法只能是俩者共有的方法(输出的结果是:子类重写的方法内容);由子类声明子类创建的对象,里面的方法都可以被执行到。
其执行的先后顺序如下:

package com.extend.test; //父类
public class Father {
private String name = "father"; public Father(){
testOne();
testTwo();
} public void testOne(){
System.out.println("Father testOne : "+ name);
} public void testTwo(){
System.out.println("Father testTwo : "+ name);
}
public static void main(String[] args) {
new Father();
}
} package com.extend.test; //子类继承父类
public class Son extends Father {
private String son = "son"; public Son(){
testOne();
testTwo();
} public void testOne(){
System.out.println("Son testOne : "+son);
} public void testTwo(){
System.out.println("Son testTwo : "+son);
} public static void main(String[] args) {
new Son();
}
}
运行子类java代码,输出结果是:
Son testOne : null
Son testTwo : null
Son testOne : son
Son testTwo : son
先执行子类的main主函数,然后执行父类的无参构造函数,然后是子类的无参构造函数(子类重写了父类的方法),直接输出子类的方法中语句,
java中重写的更多相关文章
- [转帖]Java中重写和重载与多态的关系
Java中重写和重载与多态的关系 2019-09-05 00:57:41 留下一天今天 阅读数 67 收藏 更多 分类专栏: java进阶之路 版权声明:本文为博主原创文章,遵循CC 4.0 B ...
- 一文搞懂--Java中重写equals方法为什么要重写hashcode方法?
Java中重写equals方法为什么要重写hashcode方法? 直接看下面的例子: 首先我们只重写equals()方法 public class Test { public static void ...
- java 中重写toString()方法
toString()方法 一般出现在System.out.println(类名.toString()); toString()是一种自我描述方法 本身返回的是 getClass().getName() ...
- 浅谈Java中重写与重载的区别
重载和重写是Java中两个截然不同的概念.但是却因为名字相近导致很多人经常混淆. 下面用例子展示出他们之间的区别. 在Java中,重载(overloading) 发生在本类.方法名相同,参数列表不同, ...
- Java中重写与重载的辨析
摘要:在我们学习Java过程中,重写与重载使我们在面向对象里要学习的重要知识点之一,那我们看看它们有那些区别: 一.重写 1.概念:简单的说就是子类将从父类继承而来的方法重新实现一次. 2.特点: ① ...
- JAVA中重写equals()方法的同时要重写hashcode()方法
object对象中的 public boolean equals(Object obj),对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true:注意:当此方法 ...
- JAVA中重写equals()方法为什么要重写hashcode()方法?
object对象中的 public boolean equals(Object obj),对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true:注意:当此方法 ...
- Java中重写与重载
重写(覆盖):发生在子类与父类之间:方法名相同方法的个数.类型相同返回值类型小于等于父类的返回值类型 重载:发生在一个类中:方法名相同方法的个数.类型不同返回值类型可以相同也可以不相同
- Java中重写与重载的区别
方法重载:关键字overload,方法名和方法的返回类型都相同,方法参数个数和类型不一样方法重写:也叫方法覆盖,关键字override,相对于类继承而言,重写的方法名,返回类型,参数个数,参数类型都要 ...
随机推荐
- Python开发WebService:REST,web.py,eurasia,Django
Python开发WebService:REST,web.py,eurasia,Django 博客分类: Python PythonRESTWebWebServiceDjango 对于今天的WebSe ...
- spring自带工具类
在spring-core.jar包中,org.springframework.util package下有很多工具类,这些工具类十分具有参考意义.
- python Tkinter 组件
Tkinter的提供各种控件,如按钮,标签和文本框,一个GUI应用程序中使用.这些控件通常被称为控件或者部件. 目前有15种Tkinter的部件.我们提出这些部件以及一个简短的介绍,在下面的表: 控件 ...
- wordcloud:让你的词语像云朵一样美
介绍 对文本中出现频率较高的关键词给予视觉化的显示 使用 python import jieba import codecs import wordcloud file = r"C:\U ...
- Python字典实现
这篇文章描述了在Python中字典是如何实现的. 字典通过键(key)来索引,它可以被看做是关联数组.我们在一个字典中添加3个键/值对: >>> d = {'a': 1, 'b': ...
- Android开源SlidingMenu的使用
一.SlidingMenu简介 SlidingMenu是最常用的几个开源项目之一. GitHub上的开源项目Slidingmenu提供了最佳的实现:定制灵活.各种阴影和渐变以及动画的滑动效果都不错.不 ...
- redis 安装 主从同步 哨兵模式
一.redis 的安装1.先将安装包放到linux的一个文件夹下面 2.解压压缩包如图所示 3.解压后进入解压文件 4.安装: make 出现it.s a good idea to run 'make ...
- es之路由:进一步提高Elasticsearch的检索效率(适用大规模数据集)
1:一条数据是如何落地到对应的shard上的 当索引一个文档的时候,文档会被存储到一个主分片中. Elasticsearch 如何知道一个文档应该存放到哪个分片中呢? 首先这肯定不会是随机的,否则将来 ...
- tp32-layuicms项目介绍
项目结构: 项目截图: 登录页 文章列表 码云仓库:https://gitee.com/lim2018/tp32-layuicms
- AVLTree的实现以及左右旋转维持自平衡
AVL(Adelson-Velskii and Landis)树是带有平衡条件的二叉查找树.这个平衡条件必须要容易保持,而且它保证树的深度须是o(logN).最简单的想法是要求左右子树具有相同的高度, ...