JAVA--接口多态

package test;
/*
 * 多态:多态就是行为具有表现多种功能的能力
 * 继承多态:通过继承的方式来体现的多态
 * 继承多态,不仅仅是父类是抽象类,父类是普通类也是可以的
 * 多态的条件:
 * 1、子类对父类有方法重写
 * 2、父类的引用指向子类的实例,调用覆写的这个方法的时候,调用的是子类的方法
 */
/*class Teacher{
    String name;
    int age;
    public void teach() {
        
    }
}*/
interface Teacher{
    public void teach();
}

class JavaTeacher implements Teacher{
    String name;
    int age;
    public void teach() {
        System.out.println(name+"在教java课");
    }
}

class PHPTeacher implements Teacher{
    String name;
    int age;
    public void teach() {
        System.out.println(name+"在教PHP课");
    }
}

class Leader{
    /*
     * 考核java老师
     * Teacher t = new PHPTeacher(); 子类的对象自动转换成父类
     */
    public void check(Teacher t) {
        //判断父类的实际真身是哪个子类的实例
        if(t instanceof JavaTeacher) {//t如果是JavaTeacher的实例的话
            System.out.println("Java老师开始讲课");
        }
        if(t instanceof PHPTeacher) {//t如果是PHPTeacher的实例的话
            System.out.println("PHP老师开始讲课");
        }
        t.teach();
        System.out.println("打分");
    }
}

public class Demo1{
    public static void main(String[] args) {
        //创建一个java老师
        JavaTeacher jt = new JavaTeacher();
        jt.name = "战哥";
        
        PHPTeacher pt = new PHPTeacher();
        pt.name = "老肖";
        
        //创建一个领导对象
        Leader leader = new Leader();
        leader.check(jt);
        System.out.println("--------------------------");
        leader.check(pt);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值