💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## 多态 ### 1、定义 * 同一个对象,在程序不同时刻的多种运行状态。举例:水(气态,液态,固态) ### 2、实现多态的前提条件 1. 必须有继承或者实现关系 2. 必须有方法的重写 3. 父类(接口)的 引用指向子类(实现)的对象 ### 3、多态的好处和弊端: 好处: 多态的存在提高了程序的扩展性和后期可维护性 弊端: 虽然可以预先使用,但是只能访问父类中已有的功能,运行的 是后期子类的功能内容。 不能预先使用子类中定义的特有功能。 ### 4、多态中对象调用成员的特点 java在执行的时候分为两个时期:编译期,运行期 父类 子类 = 子类对象 Fu f = new Zi(); A:成员变量:编译期看类型,运行期看类型 编译看左边,运行看左边 B:成员方法:编译期看类型,运行期看对象 编译看左边,运行看右边 C:静态方法:编译期看类型,运行期看类型 编译看左边,运行看左边 ### 5、多态的思想: 指挥同一批对象做事情。举例:带兵打仗,下课等。 ### 6、多态的一个局限性: * 只能够访问父类的成员变量和成员方法,不能访问子类自身对象里面的成员变量和成员方法 如何解决这个局限性,可以使用```向下转型```来操作 ``` Son son = (Son) father; son.love = "爱好"; ``` 备注:向下造型的时候需要注意转换的类型是否是需要的类型,可能会导致类型转换异常 可以通过```instanceof```关键字来避免类型转换异常 ```instanceof```关键字作用:判断当前引用是否属于指定的对象类型