黑马程序员Java----多态
2015-04-22 15:46
162 查看
多态:一个父类的引用类型变量它既可以指向父类对象,也可以指向子类子类对象,他可以根据当前时刻指向的不同,自动调用不同的方法。
例如:B是AP的子类,
例如:B是AP的子类,
AP ab = new B();//ab是父类AP引用变量,他存储了新new出来的类B的地址,存储着这个B类的对象的地址。
package cn.itheima.day02; public class PolyTest { /**此程序证明了java多态 * 一个父类的引用类型变量它既可以指向父类对象,也可以指向子类子类对象,他可以根据当前时刻指向的不同,自动调用不同的方法,这就是多态 * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub AP aa = new AP(); System.out.println(aa.getClass()); B bb = new B(); AP ab = new B();//ab是父类AP引用变量,他存储了新new出来的类B的地址,存储着这个B类的对象的地址。 aa = bb;//将子类的bb地址赋给了父类aa,把bb当做aa来看,aa可以使用bb中的方法,aa保存了bb地址,aa就代表了bb对象 aa.f();//这样aa就可以调用f方法,子类可以当做父类 aa.g();//既可以调用子类方法,也可以调用父类方法 bb = (B) aa;//父类无法转换成子类 bb.f(); System.out.println(aa.getClass()); System.out.println(bb.getClass()); } } class AP{ public void f(){ System.out.println("AAAA"); } public void g(){ System.out.println("CCCC"); } } class B extends AP{ public void f(){ System.out.println("BBBB"); } } /*运行结果: class cn.itheima.day02.AP BBBB CCCC BBBB class cn.itheima.day02.B class cn.itheima.day02.B */
相关文章推荐
- 黑马程序员-Java学习04-接口,多态,内部类,匿名内部类,Object类
- 黑马程序员-----Java基础-----多态
- 黑马程序员—java基础_异常多态练习
- 黑马程序员——【Java基础】——面向对象(一)概述、类与对象、继承、抽象类、接口、多态、内部类
- 黑马程序员-Java学习笔记之抽象类,接口,多态和内部类
- 黑马程序员——java基础_继承、抽象类、接口、多态
- 黑马程序员_java_构造_多态_单例_继承_静态
- 黑马程序员_Java基础[16]_多态2
- 黑马程序员————Java基础部分之多态、内部类、异常
- 黑马程序员<java基础<面向对象(封装,继承,多态,抽象)>>
- 黑马程序员——java面向对象(三)多态、内部类、包
- 黑马程序员 ——Java基础之继承、抽象、接口、多态
- 黑马程序员——Java面向对象封装继承多态
- 黑马程序员_java 多态
- 黑马程序员——java面向对象之封装、继承、多态
- 黑马程序员----Java基础之面向对象(封装 继承 多态)(二)
- 黑马程序员 java多态
- 黑马程序员——java复习总结——多态和内部类
- 黑马程序员——Java基础---面向对象(继承、多态、抽象类、接口、内部类)
- 黑马程序员——Java基础——面向对象(继承、接口、多态)