漫漫人生路,学点Jakarta基础-重写(覆盖)、重载
首先我们现在开始进入Jakarta的时代,由原甲骨文易主到 Eclipse基金会下,但是不想舍弃java名字,因此基金会重新投票选出了Jakarta EE(雅加达)。但是我们明白换汤汤不换药的道理,基础是不变的因此重新温习。
温习概念
override:重写(=覆盖)-->一般在子类继承父类时,为了实现不同的功能,重写父类的方法。子类重写的方法与父类对应的方法的名称、返回类型、参数一样,存在垂直的关系。
overload:重载-->同一个类中方法之间的关系,这些方法的名称相同但是参数形式不同,因此存在水平的关系。重载是根据调用的时参表和形参表、参数顺序(参数类型不同)来选择方法。简单说就是:方法重载就是类的同一种功能的多种实现方式,到底采用哪一种方式,取决于调用者给出的参数。
规则
重载的规则:
1.方法名必须一样,参数形式不同(参数的类型、个数、顺序至少有一项是不同)。
package bank; /**
* Created by zjc on 2018/3/8.
*/
public class overload
{
public float getCount(){
return 0;
}
public int getCount(int a,int b){
return a+b;
}
public float getCount(float a, float b){
return a+b;
}
public float getCount(double c,float d){
return (float)c+d;
}
private float getCount(float d,double c){
return (float)c+d;
}
public static void main(String[] args) {
overload o = new overload();
System.out.println( o.getCount(2.3f,2.4f));
}
}
↑在此规则下:方法返回类型可以不同,方法的修饰符可以不同。
其中参数类型相同时,参数顺序前后没区别,不能构成重载。

2.不能通过访问权限、返回值类型、抛出异常进行重载(在1规则不符合的情况下);
2.1如果只是返回类型不一样:不能够构成重载。

2.2如果只是控制访问修饰符不一样:不能够构成重载。

3.方法的异常类型、数目不会对重载造成影响;
重写的规则
1.重写(子类)与被重写(父类)方法的返回类型、参数、方法名称要一模一样,否则会编译出错。
/**
* Created by zjc on 2018/3/8.
*/
public class override {
public static void main(String[] args) {
//创建一只猫
Cat cat = new Cat();
cat.cry();
Dog dog = new Dog();
dog.cry();
}
}
class Animal{
int age;
String name; public void cry(){
System.out.println("我是动物,不知道怎么叫!");
}
}
//加菲猫
class Cat extends Animal{
//覆盖父类
public void cry(){
System.out.println("喵喵叫!");
}
}
//眼镜狗
class Dog extends Animal{
//覆盖父类
public void cry(){
System.out.println("旺旺叫!");
}
}
2.重写(子类)不能缩小被重写(父类)方法的访问权限(public > protected > default > private)。

父类private 子类public这样可以重写

3.重写(子类)与被重写(父类)方法的抛出的异常要一致,或者是其子类。
4.被重写(父类)方法不能为private,否则子类只能定义新方法,不能进行重写。
5.静态方法不能被重写为非静态的方法(编译出错)。
漫漫人生路,学点Jakarta基础-重写(覆盖)、重载的更多相关文章
- 漫漫人生路-学点Jakarta基础-Java8新特性 Stream/Lambda
背景 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利.高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk dat ...
- 漫漫人生路,学点Jakarta基础-Java8函数式编程
接口默认方法 Java8版本以后新增了接口的默认方法,不仅仅只能包含抽象方法,接口也可以包含若干个实例方法.在接口内定义实例方法(但是注意需要使用default关键字) 在此定义的方法并非抽象方法,而 ...
- 慢慢人生路,学点Jakarta基础-JavaDoc标记
本文对使用Maven工程构建Jenkinsjob时遇到的问题进行一下分析汇总. JavaDoc标记使用问题 一般Maven项目都有配置产生Java DOC,但是在Jenkins里面产生DOC会有一些严 ...
- 慢慢人生路,学点Jakarta基础-集合类
动态改变内存 因为数组在存储之前需要先申请一块连续的内存空间并且在编译的收就必须确定好它的空间大小,在运行时控件的大小无法再随着需求的改变而改变,极易出现越界的情况,数据少时又会造成内存空间浪费. 主 ...
- 慢慢人生路,学点Jakarta基础-深入剖析Java的接口和抽象类
在java面向对象编程的,抽象类和接口始终存在有疑问的地方,因为两者太多相似有太多不同,在刚开始学习的时候经常弄的不对,使用情景搞混,今天来总结之前学习Java中接口和抽象类的问题. 抽象类 了解:只 ...
- Java基础--重写(Overriding,覆盖)-重载(Overloading)
多态性: Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义.调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法 Java的方法重写, ...
- 重载(overload)、重写:覆盖(override)、重定义:遮蔽(redefine)、多态
同一域名空间,函数名相同,签名不同 编译期绑定确定绑定函数,也称为静态多态 重写:覆盖(override) 虚函数 子类空间,函数名相同,签名相同 重定义:遮蔽(redefine) 非虚函数,子类成员 ...
- Java基础练习3(重载和重写)
1.(多选题)给定java代码如下所示,在1处新增下列()方法,是对show()方法的重载 public class Test{ public void show(int x, int y, int ...
- JavaSE基础知识(5)—面向对象(方法的重写与重载)
一.重写 1.说明 子类对继承过来的父类的方法进行改造,这种现象称为方法的重写或覆盖或覆写(Override) 2.要求 方法签名完全一致,jdk5.0之后,允许返回类型可以是子类类型,权限修饰符可以 ...
随机推荐
- jira + confluence 安装和破解
Window环境: 环境准备 安装JAVA1.8以上版本 安装SQL SERVER 或 MySQL: jira安装和破解 下载安装包 https://downloads.atlassian.com/s ...
- Xcode的SVN提示"The request timed out."的解决方案
问题描述 在利用Xcode的SourceControl进行SVN代码检出时,确认输入地址.帐号密码都正确的情况下,总是提示"The request timed out.".该问题的 ...
- LeetCode - 654. Maximum Binary Tree
Given an integer array with no duplicates. A maximum tree building on this array is defined as follo ...
- CentOS 7 搭建基于携程Apollo(阿波罗)配置中心单机模式
Apollo(阿波罗)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性.服务端基于Spring Boot ...
- centos7安装部署gitlab服务器
[gitlab需要内存至少4GB] 我这里使用的是centos 7 64bit,我试过centos 6也是可以的! 1. 安装依赖软件 yum -y install policycoreutils ...
- python进阶学习笔记(二)
1.模块和包的概念 python的解决方案是把同名的模块放到不同的包中 1.1,导入模块 要使用一个模块,我们必须首先导入该模块.Python使用import语句导入一个模块.例如,导入系统自带的模块 ...
- 对于JDBC数据库的初始化操作
package com.bluesky.connection; import java.sql.Connection; import java.sql.DriverManager; import ja ...
- Yii2框架ACF(AccessControl Filter)的使用
AccessControl其实也就是 yii\filters\AccessControl Filter, 我们下面简写为 ACF 作为描述. ACF,访问控制过滤器,适用于简单的验证,面对的对象便是控 ...
- 微信小程序半周问题总结
新产品要做一个微信小程序,不想吐槽老板没给任何准备就给出了需求和原型图,好像默认小程序闭着眼睛就可以很顺利开发好.现在半周下来(五一结束开始到今天)完成了差不多所有的界面,网络请求部分还跟服务端兄弟耗 ...
- Node.js入门(含NVM、NPM、NVM的安装)
本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. Node.js的介绍 引擎 引擎的特性: JS的内核即引擎.因为引擎有以 ...