面向对象三大特性

类具有封装性、继承性和多态性。

封装性:类的封装性为类的成员提供公有、缺省、保护和私有等访问权限,目的是隐藏类中的私有变量和类中方法的实现细节。

public class Person {
    // 私有变量
    private String name;
    private int age;

    // 公有方法(getter 和 setter)
    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) {
            this.age = age;
        } else {
            System.out.println("年龄必须大于0");
        }
    }

    // 私有方法
    private void displayInfo() {
        System.out.println("Name: " + name + ", Age: " + age);
    }

    // 公有方法调用私有方法
    public void showInfo() {
        displayInfo();
    }
}

public class Main {
    public static void main(String[] args) {
        Person person = new Person();
        person.setName("张三");
        person.setAge(25);
        person.showInfo(); // 输出: Name: 张三, Age: 25
    }
}

继承性:允许通过继承原有类的某些特性或全部特性而产生全新的类,原有的累称为父类,产生的新类称为子类。子类不仅可以直接继承父类的共性,而且也可以创建它特有的个性。

public class Animal {
    protected String name;

    public Animal(String name) {
        this.name = name;
    }

    public void makeSound() {
        System.out.println(name + " 发出声音");
    }
}

public class Dog extends Animal {
    public Dog(String name) {
        super(name);
    }

    @Override
    public void makeSound() {
        System.out.println(name + " 汪汪叫");
    }

    public void fetch() {
        System.out.println(name + " 去捡球");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal animal = new Animal("动物");
        animal.makeSound(); // 输出: 动物 发出声音

        Dog dog = new Dog("狗狗");
        dog.makeSound(); // 输出: 狗狗 汪汪叫
        dog.fetch(); // 输出: 狗狗 去捡球
    }
}

多态性:是指在基类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同行为,多态性有两种表现形式:重载和覆盖。

public class Vehicle {
    public void drive() {
        System.out.println("车辆行驶");
    }
}

public class Car extends Vehicle {
    @Override
    public void drive() {
        System.out.println("汽车行驶");
    }
}

public class Bike extends Vehicle {
    @Override
    public void drive() {
        System.out.println("自行车行驶");
    }
}

public class Main {
    public static void main(String[] args) {
        Vehicle vehicle = new Vehicle();
        vehicle.drive(); // 输出: 车辆行驶

        Vehicle car = new Car();
        car.drive(); // 输出: 汽车行驶

        Vehicle bike = new Bike();
        bike.drive(); // 输出: 自行车行驶
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值