【Java 基础】09 封装 继承 多态


我们都知道 Java 是 以面向对象而著称,最著名的当然就是面向对象的三大特性啦,接下来就逐一举例说明一下。

1. 封装

封装指的是将类的内部细节隐藏起来,只对外提供必要的访问方式。

例如:

我们使用的计算器做一个乘法运算,666 * 1234 = ?

面对这种情况,我们只需要输入到计算器里面,就可以得到一个结果。

那么,计算器是怎么计算出来的结果呢?它也没把计算方法告诉我们啊,藏起来了,这就是一种封装。

如下图这样,把 name 的值藏起来,提供了一个 getName 的方法以供获取其值

在这里插入图片描述

在 Java 中通常将类的成员变量声明为私有的(使用 private 关键字修饰),防止其他人直接访问,只能通过它提供的方法进行访问,隐藏一些自己的事,然后给出一个结果。

示例代码:

class Student {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String newName) {
        name = newName;
    }
}

在上述代码中,name 属性被声明为私有,将其对外隐藏起来,只能通过公有的 getter 和 setter 方法来访问和修改。

这样做有什么好处呢?

  • 安全性: 防止外部直接访问和修改类的内部数据,只能通过定义的方法进行操作。
  • 灵活性: 可以在方法中加入控制逻辑,实现更精确的操作。
  • 可维护性: 如果需要修改类的实现细节,只需要修改类的内部代码,而不会影响外部使用类的代码。

2. 继承

继承是为了代码重用的一种方式,一个类可以继承另一个类的属性和方法。

例如:

我们想定义两个类:一个是动物它可以 吃东西,另一个是狗狗它可以 吠叫

那么,狗狗是不是动物的一种呢?可以吃东西么?答案当然是可以的,就说明狗狗将会拥有 吃东西和吠叫。

面对这种情况,我们就会使用到了继承的特性,定义一个动物,然后去定义一个狗狗让其继承自动物,把吃东西的技能继承下来。

在这里插入图片描述

示例代码:

class Animal {
    void eat() {
        System.out.println("Animal is eating...");
    }
}

class Dog extends Animal {
    void bark() {
        System.out.println("Dog is barking...");
    }
}

在上述代码中,Dog 类使用 extends 关键字继承了 Animal 类的 eat 方法。

3. 多态

多态是允许不同的类实现相同的方法,提高了代码的灵活性和可扩展性。

例如:

我们想画画找到了两个工具,一个是画圆的圆规,另一个是画方块的格尺

这两个工具,都拥有着一个技能是 画画

这两种工具,虽然都拥有着一样的技能名称画画,但是画出来的东西确实不一样的,这就是多态。
在这里插入图片描述

示例代码:

interface Shape {
    void draw();
}

class Circle implements Shape {
    public void draw() {
        System.out.println("Drawing a circle");
    }
}

class Square implements Shape {
    public void draw() {
        System.out.println("Drawing a square");
    }
}

上述代码中,CircleSquare 类都实现了 Shape 接口的 draw 方法,实现了多态。

总结

封装、继承和多态是 Java 面向对象编程的三大特性。封装可以保证类的数据安全性以及代码的可维护性。继承可以减少代码的重复性。多态可以使得程序的代码更加简洁、灵活和易于扩展。更好的掌握这些特性,可以使得 Java 程序变得更加高效、优雅和易于维护。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值