Java中多态的概念

做一个备注:之前不知道写还可以写代码片,今天才知道,留个纪念:2015年5月15日
多态性:指同一事物具有不同的表现方式。
例如一只小狗,它既是动物类,又是狗类,这便是多态性的一种体现。
我们创建一个动物类作为动物的父类:

public class Animals {
    String name = "花花";
    int age = 17;
    int nums = 1;
    public Animals() {
    }
    void show(){
        System.out.println("我是动物类,我的名字是:"+name+"我的年龄是:"+age);
    }
    void fell(){
        System.out.println("我是有感情的");
    }
}

然后我们创建一个狗类继承自动物类:

public class Dog extends Animals {
    String breed = "牧羊犬";
    String color = "白色";
    int age = 10;
    void show(){
        System.out.println("我是狗类,我的名字是:"+name+" \t我的年龄是:"+age+" 我的品种是:"+breed+" 我的颜色是:"+color);
    }
    void hungry(){
        System.out.println(age);
    }
}

最后我们再写一个测试类来测试多态性。
第一步,简单测试成员变量:

public static void main(String[] args) {
    System.out.println(new Dog().age+"\t"+new Dog().nums);
    System.out.println(new Animals().age+"\t"+new Animals().nums);
}
输出结果:
10  1
17  1

说明:成员变量如果相同则父类的成员变量被隐藏,没有的话子类继承父类的成员变量
第二步,简单测试成员方法:

public static void main(String[] args) {
    new Dog().show();
    new Dog().fell();
    new Animals().show();
}
输出结果:
    我是狗类,我的名字是:花花 我的年龄是:10 我的品种是:牧羊犬 我的颜色是:白色
我是有感情的
我是动物类,我的名字是:花花  我的年龄是:17

说明:
方法里面如果子类和父类有同样的方法的话,则父类的方法会被子类的方法覆盖。没有的话,就会被继承。
第三步:父类变量引用子类对象

public static void main(String[] args) {
    Animals a = new Dog();
    a.show();
    System.out.println(a.age);
}
输出结果:
我是狗类,我的名字是:花花 我的年龄是:10 我的品种是:牧羊犬 我的颜色是:白色
17

说明:
虽然是父类变量,但实例化子类的时候它本身的方法便被子类给覆盖了,因此会输出子类的方法
而成员变量则只是被隐藏了,不会被覆盖的,因此仍然输出父类的成员变量。
说是覆盖了,其实也算是隐藏,我们依旧可以通过super关键字来调用父类的成员变量和成员方法。
第四步:父类变量引用子类对象

public static void main(String[] args) {
    Animals animals = new Dog();
    Dog dog = (Dog)animals;
    System.out.println(dog.age);
}
输出结果:
10

以上就是多态的一些例子,加油。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值