Java父类继承中的static和final

1、父类中staitic修饰的静态方法,不能覆盖、不能继承。

2、父类中staitic修饰的变量或常量,能覆盖、不能继承。

        static修饰的变量和方法,只属于类本身,不属于对象;当声明一个对象时,并不产生static变量和方法的拷贝。也就是说,用static修饰的变量和方法在类加载的时候,会分配一块存储空间,所有此类的对象都可以操控此块存储空间;

        注意:当子类没有与父类同名的static变量(或方法时),子类的对象也可操控这块内存空间。但是,子类并没有继承父类中static修饰的变量和方法。这是因为static修饰的变量和方法是属于父类本身的。

3、父类中final修饰的方法,不能覆盖,但可继承。

代码示例:

package com.jdk;

/**
 * Created by Liuxd on 2018-11-02.
 */
public class TestExtendsClass {
    public static void main(String[] args) {
        ParentClass parentClass = new ChildClass();
        System.out.println();

        int pFResult = ParentClass.plus(3,2);
        int pResult = ParentClass.add(3,2);
        int cResult = ChildClass.add(3,2);

        int pMResult = parentClass.minus(2,3);

        System.out.println("父类静final方法计算结果:" + pFResult);
        System.out.println("父类静方法计算结果:" + pResult);
        System.out.println("子类静方法计算结果:" + cResult);
        System.out.println("父类final方法计算结果:" + pMResult);

        System.out.println("父类静态变量num:" + ParentClass.num);
        System.out.println("子类静态变量num:" + ChildClass.num);

    }
}

class ParentClass {
    public static final int num = 1;
    ParentClass() {
        System.out.println("执行父类无参数构造方法");
    }

    static int add(int i, int j) {
        return i + j;
    }

    static final int plus(int i, int j) {
        return i + j;
    }

    final int minus(int i, int j) {
        return i - j;
    }

}

class ChildClass extends ParentClass {
    public static  final int num = 2;
    ChildClass() {
        System.out.println("执行子类无参数构造方法");
    }

//    @Override 无法继承,编译时出错
    static int add(int i, int j) {
        return i * j;
    }

//    无法继承,编译时出错
//    int plus(int i, int j) {
//        return i + j;
//    }

//    无法继承,编译时出错
//    int minus(int i, int j) {
//        return i - j;
//    }

}

输出结果:

执行父类无参数构造方法
执行子类无参数构造方法

父类静final方法计算结果:5
父类静方法计算结果:5
子类静方法计算结果:6
父类final方法计算结果:-1
父类静态变量num:1
子类静态变量num:2

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

春风化作秋雨

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值