1.多态
public class Person {
public void eat(){
System.out.println("吃饭");
}
}
public class Worker extends Person {
@Override
public void eat() {
System.out.println("工人吃饭");
}
public void work(){
System.out.println("工作");
}
}
public class Student extends Person {
@Override
public void eat() {
System.out.println("学生吃饭");
}
public void study(){
System.out.println("学习");
}
}
public class Test02 {
public static void main(String[] args) {
//多态
Person person = new Student();
Person person1 = new Worker();
person.eat();
person1.eat();
//强制类型转换
Student student = (Student) person;
student.study();
}
}
2.instanceof:判断某个实例变量是否属于某种类的类型
public class Person {
public void eat(){
System.out.println("吃饭");
}
}
public class Student extends Person {
@Override
public void eat() {
System.out.println("学生吃饭");
}
public void study(){
System.out.println("学习");
}
}
public class Worker extends Person {
@Override
public void eat() {
System.out.println("工人吃饭");
}
public void work(){
System.out.println("工作");
}
}
public class Doctor {
public void help(Person person) {
person.eat();
if (person instanceof Student) {
Student student = (Student) person;
student.study();
} else if (person instanceof Worker) {
Worker worker = (Worker) person;
worker.work();
}
}
}
public class Test02 {
public static void main(String[] args) {
Student student = new Student();
Worker worker = new Worker();
Person person = new Person();
Doctor doctor = new Doctor();
doctor.help(student);
doctor.help(worker);
doctor.help(person);
}
}