Student.java 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package main.java.com.sf.part05.oop_05;
  2. /*
  3. 抽象类中不一定都是抽象方法,也可以是实例方法,静态方法
  4. 但是包含抽象方法的类一定是抽象类。
  5. 学习抽象方法的应用: 模板设计模式 减少了父类中定义无用的方法体 ,子类只需要重写抽象方法即可
  6. */
  7. public abstract class Student {
  8. // 抽象方法 没有方法体 一定需要被子类重写
  9. public abstract void study();
  10. // 实例方法 可以被重写 也可以不重写
  11. public void eat(){
  12. System.out.println("吃饭");
  13. }
  14. public abstract String eat1();
  15. // 静态方法不能被重写
  16. public static void sleep(){
  17. System.out.println("睡觉");
  18. }
  19. }
  20. class StudentSon extends Student{
  21. @Override
  22. public void study() {
  23. System.out.println("子类学习");
  24. }
  25. @Override
  26. public void eat() {
  27. super.eat();
  28. }
  29. @Override
  30. public String eat1() {
  31. return null;
  32. }
  33. public static void main(String[] args) {
  34. // 多态
  35. Student student = new StudentSon();
  36. student.study();
  37. student.eat();
  38. student.sleep();
  39. }
  40. }