java中的多态
来源:互联网 发布:小米5x手机壳淘宝卡通 编辑:程序博客网 时间:2024/05/22 00:47
下面一个例子,可以很清楚的给大家讲解什么是多态
父类:
public class BaseClass {
public int book = 6;
public void base(){
System.out.println("父类的普通方法");
}
public void test() {
System.out.println("父类的被覆盖的方法");
}
}
子类:
public class SubClass extends BaseClass {public String book = "子类中的book隐藏父类中的book";
public void test() {
System.out.println("子类的覆盖父类的方法");
}
public void sub() {
System.out.println("子类的普通方法");
}
调用:
public static void main(String[] args) {BaseClass bc = new BaseClass();//父类对象
System.out.println(bc.book);
bc.base();
bc.test();
SubClass sc = new SubClass();//子类对象
System.out.println(sc.book);
// System.out.println(super.book);//static方法中使用super会报错
sc.base();
sc.test();
BaseClass dt = new SubClass();//编译时父类,运行时子类
System.out.println(dt.book);
dt.base();
dt.test();
//dt.sub();
}
运行结果:
6父类的普通方法
父类的被覆盖的方法
子类中的book隐藏父类中的book
父类的普通方法
子类的覆盖父类的方法
6
父类的普通方法
子类的覆盖父类的方法
从上面的调用我们看到,bc是父类对象,book、base方法、test方法都是父类中定义的。sc是子类对象,book、test方法、sub方法都是子类的。dt不同,编译类型是父类,运行时类型是子类,运行时调用的是子类的方法,因此test是子类的方法,但是父类中没有定义的方法,在编译时dt.sub会出错。这种,dt、bc都是BaseClass类型,但是运行时输出的却不一样,这种现象就叫多态。
- Java 中的多态
- java中的多态
- java中的多态
- Java中的多态
- Java中的多态
- Java中的多态
- Java 中的多态
- java中的多态
- java中的多态
- Java中的多态
- Java 中的多态
- Java中的多态
- Java中的多态
- java中的多态
- Java中的多态
- java中的多态
- java中的多态
- Java中的多态
- Android 读取assets目录下的文件
- 下拉列表默认选中--- jQuery
- hdu1370-Biorhythms
- 在内存对图片进行操作的时候注意小数的问题
- android margin vs padding
- java中的多态
- ulimit
- VIM复制粘贴系统剪贴板
- Jena进阶(一):简介+创建本体实例
- strcpy函数和strncpy函数的区别
- 关于JS截取字符串以及截取数组项的几种常见方法解析
- hdu1339
- 中国剩余定理
- 运笔操(练字诀注释二——执笔矫正训练)