java-三大特性

三大特性

Java的三大特性是面向对象编程(OOP)的核心概念,分别是封装、继承和多态。这些特性使得Java代码更加模块化、可重用和易于维护。

封装(Encapsulation)

封装是指将对象的属性和行为(方法)包装在一起,并隐藏内部实现细节,仅通过公共接口与外界交互。封装的主要目的是保护数据,防止外部直接访问或修改对象的内部状态。

  • 访问控制:通过private、protected、public等访问修饰符来控制类成员的可见性。
  • 数据隐藏:将类的属性设为private,并通过getter和setter方法来访问和修改这些属性。
  • 优点:提高代码的安全性、可维护性和灵活性。

示例代码

public class Person {
    private String name;  // 私有属性,外部无法直接访问

    // 公共的getter方法
    public String getName() {
        return name;
    }

    // 公共的setter方法
    public void setName(String name) {
        this.name = name;
    }
}

继承(Inheritance)

继承是指一个类(子类)可以继承另一个类(父类)的属性和方法,并可以在子类中添加新的属性和方法,或者重写父类的方法。继承的主要目的是实现代码的重用和扩展。

  • 单继承:Java支持单继承,即一个类只能有一个直接父类。
  • 方法重写:子类可以重写父类的方法,以提供不同的实现。
  • super关键字:用于调用父类的构造方法或方法。
  • 优点:减少代码冗余,提高代码的可维护性和扩展性。
class Animal {
    void eat() {
        System.out.println("Animal is eating");
    }
}

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

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

多态(Polymorphism)

多态是指同一个方法在不同对象中有不同的表现形式。多态分为编译时多态(方法重载)和运行时多态(方法重写)。

  • 方法重载:在同一个类中,方法名相同但参数列表不同。
  • 方法重写:子类重写父类的方法,调用时根据对象的实际类型决定执行哪个方法。
  • 向上转型:父类引用指向子类对象。
  • 优点:提高代码的灵活性和可扩展性。
class Animal {
    void sound() {
        System.out.println("Animal makes a sound");
    }
}

class Dog extends Animal {
    @Override
    void sound() {
        System.out.println("Dog barks");
    }
}

class Cat extends Animal {
    @Override
    void sound() {
        System.out.println("Cat meows");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal myAnimal = new Animal();  // Animal对象
        Animal myDog = new Dog();        // Dog对象
        Animal myCat = new Cat();        // Cat对象

        myAnimal.sound();  // 输出: Animal makes a sound
        myDog.sound();     // 输出: Dog barks
        myCat.sound();     // 输出: Cat meows
    }
}

总结

  • 封装:隐藏内部实现,提供公共接口。
  • 继承:实现代码重用和扩展。
  • 多态:同一方法在不同对象中有不同表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

在下陈平安

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

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

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

打赏作者

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

抵扣说明:

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

余额充值