java 多态
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 多态相关的知识,希望对你有一定的参考价值。
package com.mydemo.controller; /** * 多态 * java 多态有三个条件: * 1、继承 2、重写 3、父类引用指向子类对象 * ------------------------------------- * java 父类引用不能访问子类成员变量 * 需要强转 * 在强转前还要 instanceof, 不instanceof 也可以,但为了程序的健壮性,建议强转 * ------------------------------------- * 但调用子类重写的方法因为有多态,就不需要强转了 */ public class TestAnimal { public static void main(String[] args) { Animal dog = new Dog("大黄", "黄"); dog.enjoy(); /* 下面一行实际上并没有强转,dog还是一只Animal, * 因为dog 引用在声明时是Animal */ dog = (Dog)dog; // System.out.println(dog.furColor); Dog bigYellow = (Dog)dog; System.out.println(bigYellow.furColor); } } class Animal { public String name; public Animal(String name) { this.name = name; } public void enjoy() { System.out.println("叫……"); } } class Dog extends Animal { public String furColor; public Dog(String name, String furColor) { super(name); this.furColor = furColor; } public void enjoy() { System.out.println("狗叫……"); } }
以上是关于java 多态的主要内容,如果未能解决你的问题,请参考以下文章