1 /**
2 * 在子类的继承关系当中,创建子类对象,访问成员方法的规则:
3 * 创建的对象是谁,就优先用谁,如果没有则向上找。
4 * 注意事项:
5 * 无论是成员方法还是成员变量,如果没有都是向上找父类,绝对不会向下找子类。
6 *
7 * 重写(Override)
8 * 概念:在继承关系当中,方法的名称一样,参数列表也一样
9 *
10 * 重写(Override):方法名称一样,参数列表【也一样】。覆盖、复写
11 * 重载(Overload):方法名称一样,参数列表【不一样】
12 *
13 * 方法的覆盖重写特点,创建的是子类对象,则优先用子类方法。
14 *
15 * 方法覆盖重写的注意事项:
16 * 1、必须保证父子类之间的名称相同,参数也相同。
17 * @Override:写在方法前面,用来检测是不是有效的正确覆盖重写。
18 * 2、子类方法的返回值【小于等于】父类方法的返回值范围。
19 * 小扩展提示:java.lang.Object类是所有类的公共最高父类,java.lang.String就是Object的子类。
20 * 3、子类方法的全县必须【大于等于】父类方法的权限修饰符
21 * 小扩展提示:public > protected > (default) > private
22 * 备注:(default)不是关键字,而是什么都不屑,留空
23 *
24 */
25 public class Demo01ExtendsMethod {
26 public static void main(String[] args) {
27 Zi zi = new Zi();
28
29 zi.methodFu();
30 zi.methodZi();
31
32 //创建的是new了子类对象,所有优先用子类方法
33 zi.method();
34
35 }
36 }
1 public class Fu {
2 public void methodFu(){
3 System.out.println("父类方法执行");
4 }
5
6 public void method(){
7 System.out.println("父类重名方法");
8 }
9 }
1 public class Zi extends Fu {
2 public void methodZi(){
3 System.out.println("子类方法执行");
4 }
5
6 public void method(){
7 System.out.println("子类重名方法");
8 }
9
10 }