1. 封装
我们定义一个银行账户类Account,其中包含私有的属性balance表示账户余额,以及一些公共的方法如deposit(存款)、withdraw(取款)等。同时,我们还可以在Account类中添加一些保护的方法,如checkBalance()用于检查账户余额是否充足等。
public class Account {
private double balance; // 私有属性balance表示账户余额
// 公共方法,用于存款
public void deposit(double amount) {
if (amount > 0) {
balance += amount;
} else {
System.out.println("存款金额必须大于0!");
}
}
// 公共方法,用于取款
public void withdraw(double amount) {
if (amount > balance) {
System.out.println("余额不足,无法取款!");
} else if (amount <= 0) {
System.out.println("取款金额必须大于0!");
} else {
balance -= amount;
}
}
// 保护方法,用于检查账户余额是否充足
protected boolean checkBalance(double amount) {
return balance >= amount;
}
}
2. 继承
我们定义一个人类Person,其中包含一些基本属性如姓名、年龄等。然后我们定义一个学生类Student,继承自Person类,并添加自己的属性如学号、班级等。同时,学生类还可以覆盖父类的sayHello()方法,以实现自己特定的打招呼方式。
public abstract class Person {
private String name; // 姓名
private int age; // 年龄
// 构造方法
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 公共方法,用于打印个人信息
public void printInfo() {
System.out.println("姓名:" + name + ",年龄:" + age);
}
}
public class Student extends Person {
private String studentId; // 学号
private String className; // 班级
// 构造方法
public Student(String name, int age, String studentId, String className) {
super(name, age);
this.studentId = studentId;
this.className = className;
}
// 重写父类的sayHello()方法
@Override
public void sayHello() {
System.out.println("大家好,我是" + name + ",今年" + age + "岁,我的学号是" + studentId + ",我在" + className + "班。");
}
}
3. 多态
我们定义一个动物类Animal,其中包含一个叫声方法makeSound()。然后我们定义两个子类Dog和Cat,分别实现自己的叫声方法。当我们调用Animal类的makeSound()方法时,系统会根据实际对象的类型来动态地选择对应的方法实现。
public abstract class Animal {
// 叫声方法
public abstract void makeSound();
}
public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("汪汪汪!");
}
}
public class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("喵喵喵!");
}
}
public class Main {
public static void main(String[] args) {
Animal myAnimal = new Dog(); // 实例化Dog对象
myAnimal.makeSound(); // 输出:汪汪汪!
myAnimal = new Cat(); // 实例化Cat对象
myAnimal.makeSound(); // 输出:喵喵喵!
}
}