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

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

1. 封装

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

例如:

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

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

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

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

【Java 基础】09 封装 继承 多态_第1张图片

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

示例代码:

class Student {
    private String name;

    public String getName() {
        return name;
    }

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

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

这样做有什么好处呢?

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

2. 继承

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

例如:

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

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

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

【Java 基础】09 封装 继承 多态_第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. 多态

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

例如:

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

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

这两种工具,虽然都拥有着一样的技能名称画画,但是画出来的东西确实不一样的,这就是多态。
【Java 基础】09 封装 继承 多态_第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,开发语言)