抽象类,接口,多态整合案例

继承知识点:

类 :

只能单继承  

一个类可以是多个类的超类(父类)   但一个类不用继承多个(超类)父类

注:抽象类也属于类,所以继承时也和类继承一样

 

接口:

可以单继承 也可以多继承

一个接口可以由多个接口继承,也可以继承多个接口

 

面试题:Java中是否有多继承? 有多继承,接口可以

 

 

 

抽象类,接口,多态整合案例:

 

抽象类:人

package com.xqx.demo;

/**
 * createAuthor:xingquanxiang
 * createTime:2019/8/2 16:38
 * description:人类 抽象类
 */
public abstract class Person {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public abstract void eat();

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

 

抽象类:运动员 继承 人类

package com.xqx.demo;

/**
 * createAuthor:xingquanxiang
 * createTime:2019/8/2 16:41
 * description:
 */
public abstract class Player extends Person{
    public abstract void learn();
}

 

 

抽象类:教练 继承 人类

 

package com.xqx.demo;

/**
 * createAuthor:xingquanxiang
 * createTime:2019/8/2 16:41
 * description:
 */
public abstract class Coach extends Person{
    public abstract void teach();
}

 

普通类:篮球运动员 继承 抽象类运动员

package com.xqx.demo;

/**
 * createAuthor:xingquanxiang
 * createTime:2019/8/2 16:41
 * description:
 */
public class BasketballPlayer extends Player{
    @Override
    public void learn() {
        System.out.println("篮球运动员 学习");
    }

    @Override
    public void eat() {
        System.out.println("篮球运动员 吃饭");
    }
}

 

接口:说英语

package com.xqx.demo;

public interface SpeakEnglish {
    public void speakEnglish();
}

 

普通类:乒乓球运动员 继承 抽象类运动员 实现说英语接口

 

package com.xqx.demo;

/**
 * createAuthor:xingquanxiang
 * createTime:2019/8/2 16:41
 * description:
 */
public class PingpangballPlayer extends Player implements SpeakEnglish{
    @Override
    public void learn() {
        System.out.println("乒乓球运动员 学习");
    }

    @Override
    public void eat() {
        System.out.println("乒乓球运动员 吃饭");
    }

    @Override
    public void speakEnglish() {
        System.out.println("乒乓球运动员 说英语");
    }
}

 

普通类:篮球教练 继承 抽象类教练

package com.xqx.demo;

/**
 * createAuthor:xingquanxiang
 * createTime:2019/8/2 16:41
 * description:
 */
public class BasketballCoach extends Coach {
    @Override
    public void teach() {
        System.out.println("篮球教练 教学");
    }

    @Override
    public void eat() {
        System.out.println("篮球教练 吃饭");
    }
}

 

普通类:乒乓球教练 继承 抽象类教练 实现说英语接口

package com.xqx.demo;

/**
 * createAuthor:xingquanxiang
 * createTime:2019/8/2 16:41
 * description:
 */
public class PingpangballCoach extends Coach implements SpeakEnglish{

    @Override
    public void teach() {
        System.out.println("乒乓球教练 教学");
    }

    @Override
    public void eat() {
        System.out.println("乒乓球教练 吃饭");
    }

    @Override
    public void speakEnglish() {
        System.out.println("乒乓球教练 说英语");
    }
}

 

测试类:

package com.xqx.demo;

/**
 * createAuthor:xingquanxiang
 * createTime:2019/8/2 16:37
 * description:
 */
public class Test {
    public static void main(String[] args) {
        //创建乒乓球教练类对象
        PingpangballCoach pingpangballCoach = new PingpangballCoach();
        pingpangballCoach.setName("风清扬");
        pingpangballCoach.setAge(99);
        System.out.println(pingpangballCoach.toString());
        pingpangballCoach.eat();
        pingpangballCoach.teach();
        pingpangballCoach.speakEnglish();
        System.out.println("-----------------------");

        //创建乒乓球运动员类对象
        PingpangballPlayer pingpangballPlayer = new PingpangballPlayer();
        pingpangballPlayer.setName("令狐冲");
        pingpangballPlayer.setAge(18);
        System.out.println(pingpangballPlayer.toString());
        pingpangballPlayer.eat();
        pingpangballPlayer.learn();
        pingpangballPlayer.speakEnglish();
        System.out.println("-----------------------");

        // 创建篮球教练类 对象
        BasketballCoach basketballCoach = new BasketballCoach();
        basketballCoach.setName("老阳");
        basketballCoach.setAge(23);
        System.out.println(basketballCoach.toString());
        basketballCoach.eat();
        basketballCoach.teach();
        System.out.println("-----------------------");

        // 创建篮球运动员类 对象
        BasketballPlayer basketballPlayer = new BasketballPlayer();
        basketballPlayer.setName("倖权祥");
        basketballPlayer.setAge(8);
        System.out.println(basketballPlayer.toString());
        basketballPlayer.eat();
        basketballPlayer.learn();
        System.out.println("-----------------------");
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值