面相对象的四大特征(解释和举例)

封装

就是将一些我们不愿意让外人直接操作的内容进行一个隐藏,通过我们指定的一个方式才能进行调用

代码解释:

public class BankAccount {
    private String accountNumber;
    private double balance;

    public Test BankAccount(String accountNumber, double balance) {
        this.accountNumber = accountNumber;
        this.balance = balance;
        return this;

    }

    public double getBalance() {
        return balance;
    }

    public void deposit(double amount) {
        if (amount > 0) {
            balance += amount;
        }
    }

    public void withdraw(double amount) {
        if (amount > 0 && balance >= amount) {
            balance -= amount;
        }
    }
}

我们无法直接给字段进行赋值,当创建了对象之后,我们如果不通过方法,就无法给对象里的字段重新进行赋值

例子:

继承

既然是继承,那就需要一个子类和一个父类,子类就可以继承父类,就可以使用父类的方法和属性,相当于父类的方法子类可以直接拿来用,就可以避免一些多余的代码,子类也可以重写父类的一些方法.一个父类可以有多个子类,但是一个子类只能有一个父类

public class Animal {
    public void sound() {
        System.out.println("Animal makes a sound");
    }
}

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

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

这里就可以看出,不同的子类,可以重写父类的方法,做到不同的子类,可以有不同的方法

抽象

根据我的理解,其实抽象就是把一些具体的事物,抽象成一个大类,他们之间会有一些共同的特征

public abstract class Shape {
    protected String color;

    public Shape(String color) {
        this.color = color;
    }

    public abstract void draw();
}

public class Circle extends Shape {
    private int radius;

    public Circle(String color, int radius) {
        super(color);
        this.radius = radius;
    }

    @Override
    public void draw() {
        System.out.println("Drawing Circle with radius " + radius + " and color " + color);
    }
}

也使用了继承,同上,一个方法,在不同的子类可以有不同的表现形式

多态

多态的第一特征:

其实继承父类的子类可以有不同的表现特征,就是多态的第一特征

举例:

       public void Bathe(Dog dog){
            
       }

就比如,这是一个宠物店,然后我要做的是给宠物洗澡,如果不使用多态的话,那么每一种宠物,我都要写一个洗澡的方法,就会很繁琐

        public void Bathe(Dog dog){

       }
        public void Bathe(Cat cat){

        }
        public void Bathe(Panda panda){

        }

所以我就让他们继承这个宠物店,而我的方法也进行修改

    public class Dog extends PetShop{
        public static void main(String[] args) {
            Dog dog = new Dog();
            dog.Bathe(dog);
        }
       public PetShop Bathe(PetShop petShop) {
            return petShop;
        }

那么我就只需要,宠物去继承宠物店就可以直接使用,就简洁了很多

多态的第二特征:

子类可以重写父类的方法,使用多态,就可以有不同的表现形式,同上的继承

这是本人对面向对象的一些理解,用于记录自己,也希望可以帮助别人,可能有些不对,本人虚心,请大佬指正

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值