封装
就是将一些我们不愿意让外人直接操作的内容进行一个隐藏,通过我们指定的一个方式才能进行调用
代码解释:
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;
}
那么我就只需要,宠物去继承宠物店就可以直接使用,就简洁了很多
多态的第二特征:
子类可以重写父类的方法,使用多态,就可以有不同的表现形式,同上的继承
这是本人对面向对象的一些理解,用于记录自己,也希望可以帮助别人,可能有些不对,本人虚心,请大佬指正