今日总结: 1、快捷键学习 Alt+insert 构造方法,重写父类方法 2、问题分析思路与: 先具体再抽象 代码实现: 先抽象在具体 3、抽象类:共性,需要进行执行的方法描述声明 接口:可扩展性功能 4、构造方法: 对对象进行初始化自己写一个对于接口与抽象类相关的代码:教练和运动员案例
import javax.print.attribute.standard.MediaSize; /* 教练和运动员案例 乒乓球运动员和篮球运动员 乒乓球教练和篮球教练 为了出国交流,跟乒乓球 相关的人员都需要学习英语 先分析: 弄清和从共性出发,哪些可以作为抽象类、接口、具体类 抽象类: 人(共性) 教练 接口: 学英语(体会接口作为扩展性功能的描述) 具体类:具体运动员,具体教练 */ //接口:学英语 interface EnlishLearning{ public abstract void speak(); } abstract class Person{ private int age; private String name; public boolean female; public Person() { } public Person(int age, String name, boolean female) { this.age = age; this.name = name; this.female = female; } public boolean isFemale() { return female; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void setFemale(boolean female) { this.female = female; } public void sleep(){ System.out.println("睡觉觉咯"); } public abstract void eat(); } abstract class Player extends Person{ public Player() { } public Player(int age, String name, boolean female) { super(age, name, female); } public abstract void learnBall(); } abstract class Coach extends Person{ public Coach(){} public Coach(int age, String name, boolean female) { super(age, name, female); } public abstract void teachBall(); } //定义具体类 //兵乓球运动员 class PingPangPlayer extends Player implements EnlishLearning{ public PingPangPlayer(){} public PingPangPlayer(int age, String name, boolean female) { super(age, name, female); } //重写抽象方法 public void eat(){ System.out.println("乒乓球运动员吃大白菜喝小米粥"); } //重写抽象方法 public void learnBall(){ System.out.println("兵乓球运动员学习悬浮球和发球"); } //实现接口的具体方法 public void speak(){ System.out.println("出国就要学英语,引领世界"); } } //定义具体类 //篮球运动员 class BasketPlayer extends Player { public BasketPlayer(){} public BasketPlayer(int age, String name, boolean female) { super(age, name, female); } //重写抽象方法 override @Override //用快捷键Alt+insert键快速敲出 public void eat() { System.out.println("篮球运动员吃小白菜喝大米粥"); } // 重写继承的方法 implements @Override public void learnBall() { System.out.println("篮球运动员学习传球"); } } class PingpangCoach extends Coach implements EnlishLearning{ public PingpangCoach(){} public PingpangCoach(int age, String name, boolean female) { super(age, name, female); } public void eat(){ System.out.println("乒乓球教练吃的很清淡"); } public void speak(){ System.out.println("乒乓球教练学英语啦"); } @Override public void teachBall() { System.out.println("乒乓球教练教悬浮球"); } } class BasketballCoach extends Coach { public BasketballCoach(){} public BasketballCoach(int age, String name, boolean female) { super(age, name, female); } //重写eat() public void eat(){ System.out.println("篮球教练喝牛奶"); } public void teachBall(){ System.out.println("篮球教练教快打和传球"); } } public class InterfaceAndAbstract { public static void main(String[] args) { PingPangPlayer pa =new PingPangPlayer(32,"张继科",false); pa.eat(); pa.learnBall(); pa.speak(); pa.sleep(); System.out.println("--------------------"); //篮球运动员的测试 BasketPlayer Ba= new BasketPlayer(40,"姚明",false); Ba.eat(); Ba.learnBall(); Ba.sleep(); System.out.println("-------"); System.out.println("-------"); //乒乓球教练的测试 PingpangCoach pca= new PingpangCoach(23,"小旺仔",false); pca.eat(); pca.teachBall(); pca.speak(); pca.sleep(); System.out.println("-------"); //篮球教练的测试 BasketballCoach Bca= new BasketballCoach(44,"中鑫",false); Bca.eat(); Bca.teachBall(); Bca.sleep(); System.out.println("-------"); System.out.println("-------"); } }