一,重载:
基本要求:在一个类中,函数名相同,参数列表不同
二,复写(Override):又叫重写或者覆盖,它要求满足以下两个条件:
(1)在具有父子关系的两个类当中
(2)父类和子类各有一个函数,这两个函数的定义(返回值类型,函数名,参数列表)完全相同;
附注:另有说法,说是返回类型必须和被重写函数的返回类型相同或是返回类型的子类型。
三,举例:
(1)重载:
class Person{
String name;
int age;
Person(){
System.out.println("我是没有参数的重载函数");
}
Person(String name){
System.out.println("我是只有一个参数的重载函数");
}
Person(String name , int age){
this.age = age;
this.name = name;
System.out.println("我是有两个参数的重载函数");
}
}
(2)重写:
父类:
class Person {
.....//其它代码
//存在成员方法1
public void introduce(){
System.out.println("我是父类");
}
//方法2
public void Me(String name , int age){
.....//其它代码
//存在成员方法1
public void introduce(){
System.out.println("我是父类");
}
//方法2
public void Me(String name , int age){
.....//其它代码
//存在成员方法1
public void introduce(){
System.out.println("我是父类");
}
//方法2
public void Me(String name , int age){
this.name = name;
this.age = age;
System.out.println("我的名字是:" + name + "年龄:" + age);
}
子类:继承父类
class Student extends Person{
.....//其它代码
//存在成员方法1
public void introduce(){
System.out.println("我是子类,重写了父类"); //也可以不写这行
//其它代码
}
//方法2
public void Me(String name , int age){//这里要一样,函数定义要一样
this.name = name;
this.age = age;
System.out.println("我的名字是:" + name + "年龄:" + age); //内容可以不同,这行可以去掉
//添加自己的代码
}
}
.....//其它代码
//存在成员方法1
public void introduce(){
System.out.println("我是父类");
}
//方法2
public void Me(String name , int age){
System.out.println("我的名字是:" + name + "年龄:" + age);
}