Java中多态的概念
来源:互联网 发布:linux cst破解 编辑:程序博客网 时间:2024/06/06 16:56
做一个备注:之前不知道写还可以写代码片,今天才知道,留个纪念: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 117 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
- Java中多态的概念
- java的概念
- JAVA中流的概念
- Java中流的概念
- Java池的概念
- Java 容器的概念
- java引用的概念
- Java流的概念
- Java线程的概念
- java的包概念
- java:包的概念
- Java 多线程的概念
- java 流的概念
- JAVA事务的概念
- JAVA事务的概念
- Java线程的概念
- java的容器概念
- java包的概念:
- 上古神器Vim之查找
- Linux启动时~/.bash_profile等文件的执行过程
- 在PHP中使用Memcache优化缓冲性能
- เส้นทางพารวยของคาสิโนออนไลน์
- Android Fragment 如何清空回退栈中的Fragment
- Java中多态的概念
- Python快速教程
- POJ 1287 Networking
- PhotoGram 程序开发网络帮助文件 版本2.0
- 高仿QQ源码下载 (android前端+JAVA后台+spark<windows版聊天>)方便集成到自己系统
- android Toast大全(五种情形)建立属于你自己的Toast
- 广度优先周游二叉树
- github教程
- mysql 中存储过程