JAVA幼儿园入门级!(二)三大特性之继承(1)

关于JAVA的三大特性:继承,封装以及多态,各位初学编程的小伙伴们肯定早有耳闻。但这六个字每个单独都能理解,可合在一起就变成了我看不懂的亚子。(泪目)

但不用担心!因为本编文章将从一个小白的角度,生动的解答什么是继承以及相关的知识!

首先,一说到继承这两个字,我们首先想到的可能是财产继承,爵位继承等等,都是将之前属于某人的某些东西留给其他人。JAVA里的继承其实与现实中的概念十分相似,只不过不会征收“遗产税”。换言之,被继承者会把所有内容都继承给继承者。

然后,继承是发生在类之间的。被继承者被称为父类,继承者被称为父类。结合我们上面讲到的,父类会将全部都继承给子类,类似于复制粘贴。

继承的关键词是extends,要创造一个继承了父类的子类,格式为

public class 子类名 extends 父类名{


}

假设我们有个父类叫打工人,我们想创造有个更详细的子类码农;

public class programmers extends workers{
  
}

虽然我们之前讲到子类继承了父类的全部内容,但这不代表子类和其对象可以调用到父类的全部内容。说到这里,我们就不得不提及访问修饰符了。

别害怕,虽然访问修饰符听起来很晦涩难懂,但它其实只是一个决定谁能访问它修饰的东西的前缀。

常见的访问修饰符包括public, private, protected,和不写。下面我将介绍这几个访问修饰符起什么作用。

public:如词义,public修饰的变量和方法是完全公开的,可以随意访问。

private:依旧如词义,私密的。其修饰的变量和方法只能在本类被访问。但在其他类中可以通过定义get和set方法来访问用private修饰的变量。

假设打工人类下有一个用private修饰的变量name;

public class workers{
    private String name;

}

按照我们之前讲过的,除了本类以外的其他地方都不能直接访问这个name变量。但我们可以在本类里定义用public修饰的get和set方法。

public class workers{
    private String name;


    /**
     * Public getter that retrieves instance variable - name
     *
     * @return instance variable - name
     */
    public String getName() {
        return name;
    }

    /**
     * Public setter that mutates instance variable - name
     * 
     * @param name instance variable - name
     */
    public void setName(String name) {
        this.name = name;
    }

}

这样,即使是被private修饰的变量name也可以通过这两个方法在本类外被访问和修饰了!

protected:受保护的。被protected修饰的变量和方法可以在同一个包下的不同类中被访问。包是被package打包在一起的class。如果没有被打包,在同一路径下也是可以的。而且,不同包的子类也可以访问。

举个例子,假设父类打工人在包A里,里面有一个用protected修饰的变量age。他的子类码农在包B里。码农类的方法是可以访问age的。

缺省:也就是不写访问修饰符,在此情况下,只能在同一个包下被访问。

当我们想要创建一个子类对象时,我们写下了以下代码;

workers a = new programmers();

要使这行代码成立,workers必须是programmers的父类,子类对象可以自动转换为父类类型。

要理解这个概念,我们可以试想一下,所有的码农都是打工人,但不是所有的打工人都是码农。所以如果把上面的workers和programmers翻转过来这行代码就会报错。

同时,子类必须替换父类,出现父类可能出现的任何地方。因为子类也同时继承的父类的一切。

这就是本篇关于继承的内容啦。希望各位初学编程的小伙伴们喜欢!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值