JAVA多态

Posted 自学开发的老司机

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA多态相关的知识,希望对你有一定的参考价值。

一、多态概念

所谓多态,是指一个引用(类型)在不同情况下的多种状态。

也可以这样理解,多态是通过指向父类的指针,来调用在不同子类中实现的方法。

 

多态通过“继承”和“接口”两种现象构成。

 

示例:

以下示例中,子类Cat和Dot继承了父类Animal的属性,重写了父类的方法。

在创建子类对象时,可以直接使用父类引用,来创建子类的对象。

附值=左侧的引用变量一样,对象类型由右侧实例决定。

这样,就可以用一个父类引用来创建N个子类实例,方便开发。

package javastudy;

public class Demo1 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        /*以下非多态
        Cat cat1=new Cat();        //创建子类Cat的对象
        cat1.cry();
        
        Dog dog1=new Dog();        //创建子类Dog的对象
        dog1.cry();
        */
        //以下为多态
        Animal c=new Cat();        //直接用父类创建子类对象。通过父类调用子类的方法。
        c.cry();              //通过父类调用子类的方法。     
        c=new Dog();
        c.cry();
    }
}

class Animal{
    
    String name;
    int age;
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    
    public  void cry() {
        System.out.println("不知道怎么叫");
    }
}

//子类

class Dog extends Animal{
    //狗叫
    public void cry(){
        System.out.println("汪汪叫");     //方法重写。
    }
}

class Cat extends Animal{
    //猫叫
    public void cry(){
        System.out.println("喵喵叫");     //方法重写。
    }
}

输出:

喵喵叫
汪汪叫


以上是关于JAVA多态的主要内容,如果未能解决你的问题,请参考以下文章

每个人单核苷酸多态性(SNP)形成的原因是啥?

多态性和动态铸造

Java多态——代码复用性

Java 多态

java多态/重载方法——一个疑难代码引发的讨论

Java 多态