面向对象ooDay9

  • 同一个对象被造型为不同的类型时,有不同的功能——-所有对象都是多态的(明天总结详细讲)

  • 对象的多态:水、我、你……

同一类型的引用在指向不同的对象时,有不同的实现—-所有抽象方法都是多态的

  • 行为的多态:cut()、getImage()、move()……

  • 强转时若不满足如上条件,则发生ClassCastException类型转换异常 建议:在强转之前先通过instanceof来判断引用指向的对象是否是该类型

    说明:instanceof会返回true或false的结果 ​ 如果满足强转成功的条件则返回true,否则返回false 何时需要强转:向上造型后,若想访问的东西在超类中没有,则需要强转

public class MultiTypeDemo {
    public static void main(String[] args) {
        //成功的条件1:引用所指向的对象,就是该类型
        //成功的条件2:引用所指向的对象,实现了该接口或继承了该类
        Aoo o = new Boo(); //向上造型
        Boo o1 = (Boo)o; //引用o所指向的对象,就是Boo类型-----------符合条件1
        Inter o2 = (Inter)o; //引用o所指向的对象,实现了Inter接口---符合条件2
        //Coo o3 = (Coo)o; //运行时会发生ClassCastException类型转换异常
        if(o instanceof Coo){ //false
            Coo o4 = (Coo)o;
        }else{
            System.out.println("o不是Coo类型");
        }

    }
}
interface Inter{ }
class Aoo{ }
class Boo extends Aoo implements Inter{ }
class Coo extends Aoo{ }

Original: https://www.cnblogs.com/Bafanqwq/p/16566647.html
Author: 八幡qwq
Title: 面向对象ooDay9

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/685702/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球