Java基础学习笔记_继承关系中成员变量、成员方法的使用特点

1、Java继承关系中成员变量的使用特点:

遵循“就近原则”,局部位置有就使用,

没有就去本类的成员位置找,有就使用,

没有就去父类的成员位置找,有就使用,没有就报错。

public class Fruit {
    int price = 20;
}

public class Apple extends Fruit {
    int price = 10;
    public void showPrice() {
        int price = 5;
        System.outprintln(price);            //5
        System.outprintln(this.price);       //10
        System.outprintln(super.price);      //20
    }
}

public class Test {
    public static void main(String args[]) {
        Apple apple = new Apple();
        apple.showPrice();
    }
}

 上述代码中,第九行代码打印值为5;

若将第八行注释掉,则打印值为10;

若继续将第六行注释掉,则打印值为20;

若将第二行注释掉,则系统报错。

 

默认打印的是离自己最近的值。

如果在上述情况下想要调用本类的成员变量,需要使用this关键字;

如果想要调用父类的成员变量,则需要使用super关键字。

2、Java继承关系中成员方法的使用特点:

方法重写:

子类中出现与父类一模一样的方法时(子类方法的权限修饰符不小于父类方法,返回值类型、方法名和参数列表相同),会出现覆盖操作,也称为重写或者复写。

父类私有方法,子类看不到,因此父类私有方法的重写也就无从谈起。

重写注意事项:

子类方法的权限修饰符不小于父类方法。

静态只能覆盖静态。

覆盖的使用场景

当子类需要父类的功能,而功能主体子类有自己特有内容时,可以复写父类中的方法。

这样,既沿袭了父类的功能,又定义了子类特有的内容。

方法重写和重载有什么区别

方法的重写用在子类方法与父类方法一模一样时,除权限修饰符以外,返回值类型、方法名和参数列表都是相同的。

重载用在同一个类中各方法方法名相同,参数列表不同(与返回值类型没有关系)的情况。

子父类中构造方法的用法

1、子类的初始化过程中,首先回去执行父类的初始化动作。

因为子类的构造方法中默认有一个super()。

2、如果父类没有无参构造方法:

  • 使用super调用父类的带参构造。(推荐方式)
  • 使用this调用本身的其他构造。

静态代码块、构造代码块,构造方法的执行顺序

父类静态代码块→子类静态代码块→父类构造代码块→父类构造方法→子类构造代码块→子类构造方法

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值