java之extends

①extends是什么意思?

②extends有什么用?

③extends能做什么?

首先回答第一个问题,extends根据百度翻译是延伸,延续等意思。eg: class Dady{},class Son extends Dady{},Son就是Dady的延续。

package com.testextends;

public class TestExtends {
    public static void main(String[] args) {
        Son son = new Son();
        son.show();
    }
}

class Dady {
    private static Long DadyMoney;

    static {
        DadyMoney = 1000L;
        System.out.println("初始化DadyMoney");
    }

    public void setDadyMoney(Long dadyMoney) {
        DadyMoney = dadyMoney;
    }

    public Long getDadyMoney() {

        return DadyMoney;
    }

    Dady() {
        System.out.println("我是Dady的无参构造函数");
    }

}

class Son extends Dady {
    private static Long SonMoney;

    static {
        SonMoney = 500L;
        System.out.println("初始化SonMoney");
    }

    public Long getSonMoney() {
        return SonMoney;
    }

    public void setSonMoney(Long sonMoney) {
        SonMoney = sonMoney;
    }

    Son() {
        System.out.println("我是Son的无参构造函数");
    }

    public void show() {

        System.out.println("Dady的钱就是Son的钱 " + getDadyMoney());
        System.out.println("Son的钱 " + getSonMoney() + " 只属于Son所有,和Dady没有关系");
    }

}

运行结果:

从运行结果观察,可以得出,凡是类似的Son如果extends了Dady,那么Son就拥有了Dady的某些功能。为什么是某些功能呢?

比如,我们把setDadyMoney方法的修饰符改为private,那么Son就不能extends Dady的setDadyMoney的这个方法。

另外,我们修改main方法里的第3行为Dady,那么第4行的调用会成功嘛?

public class TestExtends {
    public static void main(String[] args) {
         Dady son = new Son();
         son.show();
    }
}

答案是,肯定不会成功,因为第3行的意思是把new Son()这个对象强制转换成了Dady,因为Dady并没有show这个方法,所以肯定会调用失败。

在实际开发中,可以使用extends提取公共内容作为父类,使得代码更加简洁明了。

===以上是个人使用extends的一点点心得,欢迎大家的批评和改进建议===

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值