java继承中方法的覆盖重写

java继承中方法的覆盖重写

重写(Override)

概念:在继承关系当中,方法的名称一样,参数列表也一样.

注意事项:

1.必须保证父子类之间方法的名称相同,参数也相同.

@Override:写在方法前面,用来检测是不是有效的正确覆盖重写.

@Override就算不写只要满足要求,也是正确的方法覆盖重写.

2.子类方法的返回值必须小于等于父类方法的返回值范围

java.lang.Object类是所有类的公共最高父类(祖宗类),java.lang.String就是Object的子类.

3.子类方法的权限必须大于等于父类方法的权限修饰符.

public > protected > default > private

(default)不是关键字default,而是什么都不写,留空

1583235628032

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package xiaochenyan.top.Demo001;

public class Main01{
public static void main(String[] args) {
Fu fu = new Fu();
Zi zi = new Zi();

System.out.println(fu.num);//100
System.out.println(zi.num);//200

System.out.println("=============================================");

zi.show();
/*
100
10
200
100
*/

}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package xiaochenyan.top.Demo001;

public class Zi extends Fu{
int num;

Zi(){
num = 200;
}

@Override
public void show()
{
super.show();//保持父类的原内容不变,添加自己的新功能
int num = 10;
System.out.println(num);
System.out.println(this.num);
System.out.println(super.num);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package xiaochenyan.top.Demo001;

public class Fu{
int num;

Fu(){
num = 100;
}

public void show()
{
System.out.println(num);
}
}