本章目标:掌握类与对象、封装、继承、多态,建立可维护的 Java 类设计思维。
面向对象是把现实问题抽象成对象,通过对象之间协作完成业务。
核心思想:
class User {
String name;
int age;
void sayHi() {
System.out.println("Hi, 我是 " + name);
}
}User user = new User();
user.name = "Tom";
user.age = 22;
user.sayHi();把属性私有化,通过公开方法控制访问。
class Account {
private double balance;
public void deposit(double money) {
if (money > 0) {
balance += money;
}
}
public double getBalance() {
return balance;
}
}好处:
子类复用父类代码,表示“is-a”关系。
class Animal {
public void eat() {
System.out.println("动物在吃东西");
}
}
class Dog extends Animal {
public void bark() {
System.out.println("汪汪叫");
}
}父类引用指向子类对象,同一方法调用表现出不同实现。
class Animal {
public void sound() {
System.out.println("动物发声");
}
}
class Cat extends Animal {
@Override
public void sound() {
System.out.println("喵喵喵");
}
}
class Bird extends Animal {
@Override
public void sound() {
System.out.println("啾啾啾");
}
}Animal a1 = new Cat();
Animal a2 = new Bird();
a1.sound(); // 喵喵喵
a2.sound(); // 啾啾啾Employee、Manager、Developer 三个类,体现继承和多态。Payable 接口,包含 pay() 方法。Student 类,限制年龄必须在 0~120。