2022.03.04_复习继承与重写

一、复习Java继承有关知识

getset的快捷键:alt+insert

查看继承树的快捷键:ctrl+H

在所有类中,都直接或间接继承object类

私有的无法被继承!

super与this的示范:

(1)测试父类和子类的属性:

 private String name = "LiuHangming";
    public void test (String name){
        System.out.println(name);        //刘航名
        System.out.println(this.name);   //LiuHangming
        System.out.println(super.name);  //PDG
    }

(2)测试父类和子类的方法:

public void print(){
        System.out.println("I am Student!");
    }
    public void test1(){
        print();          //I am Student!
        this.print();     //I am Student!
        super.print();    //I am Person!
    }

(3)测试父类和子类的无参构造:

父类的无参构造:

public review_Inherit_people(){
        System.out.println("Person无参执行了!");
    }

子类的无参构造:

 public review_Inherit_student() {
        //隐藏代码:调用了父类的无参构造
        super();//调用父类的构造器,必须在子类的第一行
        System.out.println("Student无参执行了!");
    }
}

结果:

        Person无参执行了!
        Student无参执行了!

二、复习方法重写

重写和静态方法无关、只和非静态方法有关。

(1)静态情况:

A:
public static void test_A(){
        System.out.println("A=>test");

B:
public static void test_B(){
        System.out.println("B=>test");
    }

review_Rewrite_A A = new review_Rewrite_A();
        A.test_A();  //A

        //父类的引用指向子类
        review_Rewrite_B B = new review_Rewrite_A();
        B.test_B();  //B

(2)非静态情况:

A:
@Override
    public void test() {
        System.out.println("A=>test");
    }

B:
public  void test(){
        System.out.println("B=>test");
    }

review_Rewrite_A A = new review_Rewrite_A();
        A.test();  //A

        //父类的引用指向子类
        review_Rewrite_B B = new review_Rewrite_A();
        B.test();  //A

问题:在使用Override的时候,重写页面找不到B类

解决:把B中的statics删掉即可。

反思:因此印证重写和静态方法无关。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值