抽象类就是
父类里面有一个方法,比如吃,但是只是定义一个吃,吃什么东西由下面继承的子类自己写,子类就需要写一个一样的方法
普通类继承就是
父类里面有一个方法,比如吃,这个吃已经定义好吃的东西,下面的子类不能自己定义要吃的东西(如果要强制定义,可以用this.方法名),所以可以不写吃的方法,用的时候直接调用父类的方法就可以
/*
* 两个运动员,一个篮球运动员,一个乒乓球运动员
* 两个教练,一个篮球教练,一个乒乓球教练
* 篮球运动员和篮球教练会出国,所以需要学英语
*/
public class Test {
public static void main(String[] args) {
Boss b=new Boss();
b.zhihui2(new BasketJl());
Boss b2=new Boss();
b2.zhihui(new BasketballPlayer());
}
}
//定义一个指挥他们行动的领导
class Boss{
public void zhihui(BasketballPlayer bp){
bp.xuexi();
}
public void zhihui2(JiaoLian jl){
jl.Tech();
}
}
//定义一个 人 的类
class person{
String name;
int age;
String job;
public void eat(){
}
public void sleep(){
}
}
//定义一个运动员的类
class Player extends person{
public void study(){
}
}
//定义一个教练的类
class JiaoLian extends person{
public void Tech(){
}
}
//定义一个学英语的接口
interface English{
public void xuexi();
}
//定义4个具体的子类
//篮球运动员
class BasketballPlayer extends Player implements English{
@Override
public void xuexi() {
// TODO Auto-generated method stub
System.out.println("为了出国,要学习英语,运动员");
}
public void Tech(){
System.out.println("学会打篮球");
}
}
//乒乓球运动员
class PpPlayer extends Player{
public void Tech(){
System.out.println("学会打乒乓球");
}
}
//篮球教练
class BasketJl extends JiaoLian implements English{
@Override
public void xuexi() {
System.out.println("为了出国,要学习英语,教练");
}
public void Tech(){
System.out.println("教会他打篮球");
}
}
//乒乓球教练
class PpJl extends JiaoLian{
public void Tech(){
System.out.println("教会他打乒乓球");
}
}