Java多态的实现,简单案例
老师找同学收作业,
对象:老师Teaher,学生Student,作业HomeWork,
作业包含两个:Java 和JavaScript
老师Teacher
public class Teacher {
public static void main(String[] args) {
Student s = new Student();
HomeWork h = new Java();
System.out.println("学生完成作业情况:");
s.TestOne(h);
s.TestTwo(h);
HomeWork H = new JavaScript();
System.out.println("学生完成作业情况:");
s.TestOne(H);
s.TestTwo(H);
}
}
学生Student
public class Student {
public void TestOne(HomeWork h){
h.homeOne();
}
public void TestTwo(HomeWork h){
h.homeTwo();
}
}
作业Homework
public abstract class HomeWork {
public abstract void homeOne();
public abstract void homeTwo();
}
作业—— Java
public class Java extends HomeWork{
@Override
public void homeOne() {
System.out.println("学生写了关于Java的作业,但是不是很好");
}
@Override
public void homeTwo() {
System.out.println("学生提交了Java的作业");
}
}
作业——JavaScript
public class JavaScript extends HomeWork{
@Override
public void homeOne() {
System.out.println("学生写了Javascript的作业");
}
@Override
public void homeTwo() {
System.out.println("学生完成的还行");
}
}
建立抽象类HomeWork,然后建立作业
通过继承抽象类进行重写和覆盖,
通过具体化HomeWork的子类来完成多态,
暂时没有封装在里面…kekeke