前言
关于java的基本操作符和控制语句我这块就直接跳过了。太基础的知识大家可以从下面这个链接去学习:
https://www.runoob.com/java/java-tutorial.html
Java重载和重写
初级工程师面试基本上百分百会问的问题之一,我也不知道为啥这两个毫不相关的概念会扯到一块,也不知道是谁发明了这道面试题。
既然有人问了,那我们就针对这块来学习下
Java重载
一句话概括什么叫做重载:
方法名相同而形参不同,比如下:
void info(){
print("info method no params");
}
void info(String params){
print("info method has params: "+params);
}
简单的说明下编译器是如何区分重载方法的,很简单:每个重载方法需要有一个独一无二的参数类型列表。即使是参数顺序不同,也构成了重载。
如以下:
// 下面的这2个方法参数顺序不同,也构成了重载。
// 但不建议这样写,可维护性很差
void info(int i,String params){
}
void info(String params,int i ){
}
这里抛出一个问题给大家思考: 根据返回值来区分 重载方法可行么?欢迎留言讨论。
重写
重写描述的是发生于父类与子类之间的关系,子类针对父类中的同名方法可以进行重定义,是动态多态性的重要实现方式。
class Parent {
void foo(double d) {
// do something
}
}
class Child extends Parent {
@Override
void foo(double d){
}
}
重载和重写是两个完全毫无关联的概念,不知道为啥就扯到一块,并成为经常问的面试题,希望大家能够理解这两个概念。