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,相对于类继承而言,重写的方法名,返回类型,参数个数,参数类型都要 ...
随机推荐
- Linux基本命令+Makefile
1.linux下查看进程占用cpu的情况(top): 格式 top [-] [d delay] [q] [c] [S] [s] [i] [n] 主要参数 d:指定更新的间隔,以秒计算. q:没有任何延 ...
- Python 字符串Ⅱ
Python 字符串格式化 Python 支持格式化字符串的输出 .尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中. 在 Python 中,字符 ...
- 6. ClustrixDB 备份恢复
ClustrixDB备份恢复: 一.传统MySQL的备份/恢复 shell> mysqldump -u user -h clustrix host --single-transaction ...
- Devexpress 10
序言 Grid表格 资料 https://www.devexpresscn.com/
- 监听ios自带返回功能
//1.一开始用这段代码,结果发现滚动都失效了,如果页面大于屏幕高度将无法滚动至底部,所以淘汰 // document.addEventListener('touchmove', function(e ...
- 【BZOJ2022】Pku1837 Balance
Description Gigel has a strange "balance" and he wants to poise it. Actually, the device i ...
- Python3学习笔记(六):字符串
一.基本字符串操作 所有标准的序列操作(索引.分片.乘法.判断成员资格.求长度.取最小值和最大值)对字符串同样适用.但是字符串是不可改变的. 二.字符串格式化 字符串格式化使用字符串格式化操作符(%) ...
- es之索引的别名操作
1:增加别名 为索引school添加一个别名alias1: 1.1:创建索引 PUT student{ "settings": {"number_of_shards&qu ...
- HTTP深入浅出http请求(转)-----http请求的过程和实现机制
摘要:此文章大概讲明了http请求的过程和实现机制,可以作为了解,至于请求头和响应头的具体信息需要查看下一篇随笔:Http请求详解(转)----请求+响应各字段详解 HTTP(HyperText ...
- 大哥带的Orchel数据库时间盲注
0X01Oracle基于延时的盲注总结 0x00 前言 oracle注入中可以通过页面响应的状态,这里指的是响应时间,通过这种方式判断SQL是否被执行的方式,便是时间盲注: oracle的时间盲注通常 ...