您当前的位置: 首页 >  Java

壹小俊

暂无认证

  • 4浏览

    0关注

    885博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

java 多态

壹小俊 发布时间:2021-06-18 15:20:05 ,浏览量:4

/**
 * obj-2
 * 多态
 */
abstract class Fruits {
    abstract void colour();
}
/**
 * obj-2
 */
public class Apple extends Fruits {
    public void colour(){
        System.out.println("红色");
    }

    public void price(){
        System.out.println("1.5");
    }
}
/**
 * obj-2
 */
public class Banana extends Fruits {
    public void colour(){
        System.out.println("黄色");
    }

    public void price(){
        System.out.println("2.0");
    }
}
/**
 * java 多态
 * 多态的优点
 * 1. 消除类型之间的耦合关系
 * 2. 可替换性
 * 3. 可扩充性
 * 4. 接口性
 * 5. 灵活性
 * 6. 简化性
 * 多态存在的三个必要条件
 * 1继承
 * 2重写
 * 3父类引用指向子类对象
 * 多态的实现方式
 * 方式一:重写:
 * 这个内容已经在上一章节详细讲过,就不再阐述,详细可访问:Java 重写(Override)与重载(Overload)。
 * 方式二:接口
 * 1. 生活中的接口最具代表性的就是插座,例如一个三接头的插头都能接在三孔插座中,因为这个是每个国家都有各自规定的接口规则,有可能到国外就不行,那是因为国外自己定义的接口类型。
 *
 * 2. java中的接口类似于生活中的接口,就是一些方法特征的集合,但没有方法的实现。具体可以看 java接口 这一章节的内容。
 *
 * 方式三:抽象类和抽象方法
 */
public class Obj_2 {

    public static void main(String[] args) {
        show(new Apple());
        show(new Banana());

        Fruits f = new Apple();// 向上转型
        f.colour();// 调用的是 Apple 的 colour
        Apple a = (Apple)f;// 向下转型
        a.price();// 调用的是 Apple 的 price
    }

    public static void show(Fruits f){
        f.colour();
        if(f instanceof Apple){
            Apple a = (Apple)f;
            a.price();
        }else if(f instanceof Banana){
            Banana b = (Banana)f;
            b.price();
        }
    }
}

 

关注
打赏
1664335782
查看更多评论
立即登录/注册

微信扫码登录

0.0588s