Java的四大核心特性解释以及对应的代码示例


Java的四大核心特性是:封装、继承、多态和抽象

  1. 封装(Encapsulation):封装是指将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类提供的方法进行操作和访问。封装的主要目的是增强安全性和简化编程,使用者只需要知道对象提供哪些方法,而不需要了解内部细节。

  2. 继承(Inheritance):继承是从已有类得到继承信息创建新类的过程。子类继承父类的特性(属性和方法),并可以增加新的特性或重写父类的方法。这使得代码可以重用,提高了开发效率。

  3. 多态(Polymorphism):多态是指允许一个接口多种形态。在Java中,多态通常通过方法的重写(Override)和父类引用指向子类对象实现。这意味着同一个接口,使用不同的实例而执行不同操作。多态的存在增加了程序的灵活性和可扩展性。

  4. 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。抽象类不能被实例化,只能被继承。抽象方法只声明,不实现,子类必须覆盖它的所有抽象方法。

注意:有些人认为认为抽象更多是一种编程思想或方法论,而不是语言本身的基本特性,所以有时候也称为三大基础特性

代码示例:

//封装+抽象示例
public abstract class Animal {
    // 私有属性,封装了动物的名字
    private String name;

    // 公有方法,用于设置动物名字
    public void setName(String name) {
        this.name = name;
    }

    // 公有方法,用于获取动物名字
    public String getName() {
        return this.name;
    }

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


    // 抽象方法:动物发出声音
    public abstract void makeSound();

    // 抽象方法:动物移动的方式
    public abstract void move();
}

//继承示例
// 子类继承自 Animal (以封装示例中的Animal作为父类)
public class Dog extends Animal{

    @Override
    public void eat() {
        System.out.println("Dog is eating dog food.");
    }

    public void bark() {
        System.out.println("Dog is barking.");
    }

    @Override
    public void makeSound() {
        System.out.println("Dog is barking.");
    }

    @Override
    public void move() {
        System.out.println("Dog is running.");
    }
}

//多态示例
public class BaseDemo {
    public static void main(String[] args) {
        Animal myAnimal = new Dog(); // 父类引用指向子类对象
        myAnimal.eat(); // 调用子类重写的 eat 方法

        // 由于 myAnimal 是 Animal 类型,它不能直接调用 Dog 特有的 bark 方法
        // 如果需要调用,需要将其转型为 Dog 类型
        if (myAnimal instanceof Dog) {
            Dog myDog = (Dog) myAnimal;
            myDog.bark(); // 调用 Dog 的 bark 方法
            myDog.move(); // 调用 Dog 的 bark 方法
        }
    }
}

在这个代码示例中,Animal类展示了封装特性,将动物的名称隐藏在内部,并通过公有方法 setName 和 getName 进行访问和修改。
Animal 和 Dog 类展示了继承,其中 Dog 类继承自 Animal 类,并重写了 eat 方法。最后,Demo 类展示了多态,其中 myAnimal 变量是 Animal 类型,但可以指向 Dog 类型的对象,并调用其重写的方法 eat。通过类型转换,我们还可以调用 Dog 类特有的 bark 方法。多态如何表示的呢?现在是Dog类来继承Animal 类,还可以创造出cat、bird等等动物类去继承Animal类并重写eat方法,这就是多态的一个体现。
关于抽象的展示:在这个示例中,Dog 类继承了 Animal 类,并提供了 makeSound 和 move 方法的具体实现。由于这些方法在 Animal 类中是抽象的,所以它们必须在子类中实现。通过抽象,我们可以定义通用的类(如 Animal),并根据需要创建具体的子类(如 Dog 和 Cat),从而实现代码的复用和灵活扩展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jz_Stu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值