面向对象之继承(Java)

面向对象之继承(Java)


面向对象是Java学习中最基础,也是最重要的一部分,其中它的三大特征包括:

  1. 封装
  2. 继承
  3. 多态

今天让我们一起来学习面向对象的三个特征中的第二大特征——继承


何为继承?

和我们生活中的继承是一个意思,子女可以继承父母的车、房、财产,姓氏等······

  1. 在java中,继承使用的关键字是extends。
  2. 子类可以继承父类的属性、方法。
  3. 在Java中,继承只能单继承,所以一个子类只能继承一个父类。但是一个父类允许有多个子类。

为何要使用继承?

实现了代码的重用,相同的代码不需要重复的编写。
子类继承父类,可以直接享受父类中已经封装好的属性以及方法,不需要再次开发。
子类可以根据自己的属性,封装自己特有的属性和方法。

如何使用?(格式)

public class Fu{
	//属性
	//方法
}

//extends 表示继承
public class Zi extends Fu{
	//属性
	//方法
}

通过案例具体学习

  1. 创建父类,拥有属性姓名和年龄。拥有show()方法显示自己的信息。
  2. 创建子类,继承父类的属性和方法,拥有新的属性爱好。
  3. 创建测试类,进行测试。

Fu.java

public class Fu {
    private String name;   //父亲的姓名
    private int age;       //父亲的年龄

	//父亲的个人信息
    public void show(){
        System.out.println("我是爸爸,我的名字:"+getName());
        System.out.println("今年的岁数:"+getAge()+"岁");
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

Zi.java

public class Zi extends Fu{
    private String like;    //儿子的特有属性:爱好

	//重写父亲的show()方法,并展示自己特有的属性
    @Override 
    public void show() {
        System.out.println("我是儿子,我的名字:"+getName());
        System.out.println("今年的岁数:"+getAge()+"岁");
        System.out.println("我的爱好:"+getLike());
    }

    public String getLike() {
        return like;
    }

    public void setLike(String like) {
        this.like = like;
    }
}

Test

public class Test {
    public static void main(String[] args) {
        Fu fu = new Fu();          //创建父类对象
        fu.setName("小头爸爸");    //为父亲取名字
        fu.setAge(35);             //为父亲设置年龄
        fu.show();                 //展示父亲的个人信息
        System.out.println("============");
        Zi zi = new Zi();          //创建子类对象 
        zi.setName("小头儿子");    //为儿子取名字
        zi.setAge(12);             //为儿子设置年龄
        zi.setLike("打篮球、打伞");//为儿子设置爱好
        zi.show();                 //展示儿子的个人信息
    }
}

运行结果
在这里插入图片描述

从这个案例可以很清晰的看出

  1. 在子类中,继承了父类,并没有为子类去声明属性名字和年龄,但是在测试类中可以直接调用名字和年龄的setget方法。所以在子类中,继承了父类的属性name和age。
  2. 在父类中有一个show()方法,在子类中也有一个show()方法,在它的上面有这样一个单词@Override,这表示方法的重写,也就是说继承并覆盖了父类的show()方法,而且可以在子类中得到扩展,因此在子类的show()方法中展示了自己特有的属性。

在这里插入图片描述

别忘了一键三连哟!

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值