方法的重写【java语言】
1、父类
package com.wyq.study;
public class Father{//书写类
//书写属性
private String name;
private int age;
//提供共有的取值赋值方法
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
if(age<0||age>100){
System.out.println("年龄输入有误,请重新输入。");
this.age = 1;
}else{
this.age = age;
}
}
public int getAge(){
return age;
}
//书写无参构造方法
public Father(){
System.out.println("这里是Father的无参的构造方法");
}
public Father(String name,int age){
this.name =name;
this.setAge(age);
System.out.println("这里是Father的带参的构造方法,参数分别是:"+this.name+"\t"+this.getAge());
}
//书写普通方法
public void speak(String language,String work){
System.out.println("这里是父类Father普通方法的测试:其参数为:"+language+"\t"+work+"\t"+this.name+"\t"+this.getAge());
}
}
注意父类的speak方法
2、再写子类
package com.wyq.study;
public class Son extends Father{
//属性
private String schoolName;
private int clazz;
//属性私有化
public void setSchoolName(String schoolName){
this.schoolName = schoolName;
}
public String getSchoolName(){
return schoolName;
}
public void setClazz(int clazz){
if(clazz<0||clazz>10){
System.out.println("班级的输入有误。");
this.clazz = 5;
}else
this.clazz = clazz;
}
public int getClazz(){
return clazz;
}
//无参构造
public Son(){
super();
System.out.println("这里是son类的无参构造");
}
public Son(String name,int age,String schoolName,int clazz){
super( name, age);
this.schoolName = schoolName;
this.setClazz(clazz);
System.out.println("这里是son类的带参构造"+"\t"+super.getName()+"\t"+super.getAge()+"\t"+this.getSchoolName()+"\t"+this.schoolName+"\t"+this.getClazz());
}
//书写普通方法无锡人流医院:http://www.bhnfkyy.com/
public void study(String course){
System.out.println("正在学习"+course+"\t"+this.schoolName+"\t"+this.getClazz());
}
@Override
public void speak(String language, String work) {
super.speak(language, work);
System.out.println("这里是重写子类Son的测试,参数为:"+super.getName()+"\t"+super.getAge()+"\t"+this.getSchoolName()+"\t"+this.getClazz());
}
}
3、再写测试类
package com.wyq.study;
public class TestSon {
public static void main(String[] args) {
Son s = new Son();//调用子类的无参构造
Son so = new Son("张三",20,"北京大学",2);
so.study("计算机");
System.out.println(so.getName()+"\t"+so.getAge()+"\t"+so.getSchoolName()+"\t"+so.getClazz());
so.speak("python", "码农");
System.out.println("************************");
Father f = new Father("王五",-10);
f.speak("C语言", "工人");
}
}
4、测试结果
这里是Father的无参的构造方法
这里是son类的无参构造
这里是Father的带参的构造方法,参数分别是:张三 20
这里是son类的带参构造 张三 20 北京大学 北京大学 2
正在学习计算机 北京大学 2
张三 20 北京大学 2
这里是父类Father普通方法的测试:其参数为:python 码农 张三 20
这里是重写子类Son的测试,参数为:张三 20 北京大学 2
************************
年龄输入有误,请重新输入。
这里是Father的带参的构造方法,参数分别是:王五 1
这里是父类Father普通方法的测试:其参数为:C语言 工人 王五 1
5、总结
1)继承:先写父类,再写子类;可以继承父类非private属性,可以继承父类非private方法;对于父类的构造方法,子类可以调用,但是不能继承。继承使用的关键字是extends
2)最左侧有"绿色"的实心三角,说明这个方法是重写父类中的方法,方法上会有@的注解
3)方法的重写
①在子类
②方法的名称必须与父类的方法名称相同
③子类所继承的方法的必须与父类该方法的参数类型、顺序、个数完全相同
④子类重写方法的返回值类型必须与父类方法的返回值类型相同,或者与父类的子类的方法返回值类型相同。
方法的重写【java语言】的更多相关文章
- iOS—网络实用技术OC篇&网络爬虫-使用java语言抓取网络数据
网络爬虫-使用java语言抓取网络数据 前提:熟悉java语法(能看懂就行) 准备阶段:从网页中获取html代码 实战阶段:将对应的html代码使用java语言解析出来,最后保存到plist文件 上一 ...
- iOS开发——网络实用技术OC篇&网络爬虫-使用java语言抓取网络数据
网络爬虫-使用java语言抓取网络数据 前提:熟悉java语法(能看懂就行) 准备阶段:从网页中获取html代码 实战阶段:将对应的html代码使用java语言解析出来,最后保存到plist文件 上一 ...
- Java 语言的 XPath API
如果要告诉别人买一加仑牛奶,您会怎么说?"请去买一加仑牛奶回来" 还是 "从前门出去,向左转,走三个街区向右转,再走半个街区向右转进入商店.走向四号通道,沿通道走五米向左 ...
- day04<Java语言基础+>
Java语言基础(循环结构概述和for语句的格式及其使用) Java语言基础(循环结构for语句的练习之获取数据) Java语言基础(循环结构for语句的练习之求和思想) Java语言基础(循环结构f ...
- IT兄弟连 Java语法教程 Java语言的其他特性
Java语言中除了非常重要的跨平台特性外,还有如下几个关键特性: ● 语法简单易学 Java语言的语法简单明了,容易掌握,而且是纯面向对象(OOP)的语言,Java语言的简单性主要体现在以下几个方面 ...
- 如何重写Java中的equals方法
Java中,只有8种基本类型不是对象,例如:4种整形类型(byte, short, int,long),2种浮点类型(flout, double),boolean, char不是对象,其他的所有类型, ...
- Java中方法的重写
★★前提:方法的重写建立在继承关系上★★ 在Java程序中,类的继承关系可以产生一个子类,子类继承父类,它具备了父类所有的特征,继承了父类所有的方法和变量. 所谓方法的重写是指子类中的方法与父类中继承 ...
- java语言复制数组的四种方法
JAVA语言的下面几种数组复制方法中,哪个效率最高? B.效率:System.arraycopy > clone > Arrays.copyOf > for循环 1.System.a ...
- java 子类继承父类成员变量的隐藏、实现方法的重写
成员变量的隐藏和方法的重写 Goods.java public class Goods { public double weight; public void oldSetWeight(double ...
随机推荐
- 一个基于Tp3.2(thinkphp3.2)的工会管理系统
该系统包括11个模块. 会员管理模块 奖惩管理模块 运动会管理模块 新闻管理模块 文档管理模块 经费管理模块 电子提案管理模块 用户管理模块 权限管理模块 系统管理模块 系统的登录 系统主页 这里只是 ...
- Socket 阻塞与非阻塞模式
http://blog.sina.com.cn/s/blog_5d0990c7010115ib.html
- Gym - 101611D Decoding of Varints(边界值处理)
Decoding of Varints Statements Varint is a type used to serializing integers using one or more bytes ...
- Vue.js中,如何自己维护路由跳转记录?
在Vue的项目中,如果我们想要做返回.回退操作时,一般会调用router.go(n)这个api,但是实际操作中,使用这个api有风险,就是会让用户跳出当前应用,因为它记录的是浏览器的访问记录,而不是你 ...
- Unity 5.6 beta版本新特性
http://manew.com/thread-98549-1-1.html 最新发布的beta版改进了编辑器和2D功能,图形性能更佳,加入新的视频播放器,并添加了对Facebook Gameroom ...
- 《深入理解Java虚拟机》笔记01 -- 运行时数据区
运行时数据区示意图 1. 程序计数器 占用一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器.主要用来记录线程执行到哪条语句了,分支.循环.跳转.异常处理.线程恢复等功能都需要依赖这个 ...
- Mac终端操作移动硬盘文件命令
桌面上看到的硬盘都挂载在 /Volumes目录下 例如移动硬盘名为ZTB,有System目录,则应输入命令: cd /Volumes/ZTB/System 注意:进入Volumes目录命令为cd /V ...
- git 的基本设置以及使用
https://www.linuxidc.com/Linux/2018-05/152611.htm 详解git add , git commit , git push, 等命令 https://blo ...
- Nacos深入浅出(六)
其实我们发现在我们本地新生成了文件,这个文件就是nacos; 这个文件怎么那么眼熟,不就是我们的controller中的注解里面的参数value么: @Controller @NacosPropert ...
- linux 查看系统版本号(转)
一.查看Linux内核版本命令(两种方法): 1.cat /proc/version [root@localhost ~]# cat /proc/versionLinux version 2.6.18 ...