Skip to content

面向对象三大特性

TIP

Java 是面向对象的编程语言,其核心是封装、继承和多态三大特性。

封装

将数据和操作数据的方法绑定在一起,对外隐藏内部实现细节。

java
public class Student {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if (age > 0 && age < 150) {
            this.age = age;
        }
    }
}

继承

子类继承父类的属性和方法,实现代码复用。

java
public class Animal {
    protected String name;
    public void eat() {
        System.out.println(name + " 正在吃");
    }
}

public class Dog extends Animal {
    public void bark() {
        System.out.println(name + " 汪汪叫");
    }
}

// 使用
Dog dog = new Dog();
dog.name = "旺财";
dog.eat();   // 旺财 正在吃
dog.bark();  // 旺财 汪汪叫

多态

同一方法在不同对象上有不同表现,基于继承和方法重写。

java
public interface Shape {
    double area();
}

public class Circle implements Shape {
    private double radius;
    public Circle(double r) { this.radius = r; }
    @Override
    public double area() {
        return Math.PI * radius * radius;
    }
}

public class Rectangle implements Shape {
    private double w, h;
    public Rectangle(double w, double h) { this.w = w; this.h = h; }
    @Override
    public double area() {
        return w * h;
    }
}

// 多态调用
Shape s1 = new Circle(5);
Shape s2 = new Rectangle(3, 4);
System.out.println(s1.area()); // 78.54
System.out.println(s2.area()); // 12.0

TIP

多态的三个必要条件:继承、方法重写、父类引用指向子类对象。