java多态

Java中的多态性表现:
1,方法的重载和重写;
2,可以用父类的引用指向子类的具体实现,而且可以随时更换为其他子类的具体实现;
父类:Animal

package com.yhc.polymorphic;

public class Animal {

    public void say(){
        System.out.println("我是一个动物");
    }
}

子类Dog

package com.yhc.polymorphic;

public class Dog extends Animal{

    public void say(){
        System.out.println("我是一只狗");
    }
}

子类Cat

package com.yhc.polymorphic;

public class Cat extends Animal{

    public void say(){
        System.out.println("我是一只猫");
    }
}

测试类

package com.yhc.polymorphic;

public class Test {

    public static void main(String[] args) {
        //向上转型
        Animal animal1 = new Dog();
        animal1.say();
        Animal animal2 = new Cat();
        animal2.say();

        //向下转型
        Dog dog = (Dog) animal1;
        dog.say();

    }
}

输出结果:

我是一只狗
我是一只猫

我是一只狗

对象的转型:
向上转型:子类对象->父类对象 安全
向下转型:父类对象->子类对象 不安全


接口实现多态

People接口

package com.yhc.polymorphic;

public interface People {

    public void say();
}

Student类

package com.yhc.polymorphic;

public class Student implements People{

    public void say() {
        System.out.println("我是一个学生");
    }
}

Teacher类

package com.yhc.polymorphic;

public class Teacher implements People {

    public void say() {
        System.out.println("我是一个老师");
    }
}

测试类

package com.yhc.polymorphic;

public class Test2 {

    public static void main(String[] args) {
        People people1 = new Student();
        People people2 = new Teacher();

        people1.say();
        people2.say();
    }
}

输出结果:

我是一个学生
我是一个老师


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值