函數(shù)重載(Overload):
1.函數(shù)名稱一樣
2.參數(shù)類型與參數(shù)個(gè)數(shù)不一樣
3.與返回值無關(guān)
函數(shù)重寫(Override):
1.重寫必須繼承,重載不需要
2.參數(shù)數(shù)目相同,參數(shù)類型兼容
3.重寫的方法修飾符大于等于父類的方法
4.重寫不可以拋出父類沒有拋出的一般異常,可以拋出運(yùn)行時(shí)異常
重載案例
public class test1 {
public static void main(String[] args) {
test1 test = new test1();
System. out.println(test.sum(0.1, 0.5));
System.out.println(test.sum(1, 5));
System.out.println(test.sum("1", "2"));
System.out.println(test.sum(5));
}
public double sum(double num1,double num2){
return num1 + num2;
}
public int sum(int num1,int num2){
return num1 + num2;
}
public String sum(String num1 ,String num2){
return num1 + num2;
}
//個(gè)數(shù)不一樣
public String sum(int num1){
return Math.abs(num1)+"";
}
}
重寫案例
package com.lanou.obj;
//子類擁有父類所有的非private修飾的屬性和方法
public class test02 {
//封裝 隱藏一些類的具體細(xì)節(jié),提供公共方法來調(diào)用
public static void main(String[] args) {
Teacher t = new Teacher();
t.age = 12;
t.name = "小明";
t.study();
t.teach();
//調(diào)用方法的順序
//自己-->父類-->父類的父類-->object
//如果都不存在,報(bào)錯(cuò)
}
}
class Person{
int age;
String name;
void study(){
System.out.println("學(xué)習(xí)");
}
}
class Teacher extends Person {
void teach(){
System.out.println("教書");
}
}
class Student extends Person{
//方法重寫
//重寫 1.繼承 2.方法重寫父類的方法
//override //注解 //@override方法重寫的注解
void study(){
super.study();//調(diào)用父類方法
System.out.println("教師學(xué)習(xí)");
}
void doHomeWork(){
System.out.println("做作業(yè)");
}
//場(chǎng)景 父類的方法的需求不滿足子類的時(shí)候
}