【Eternallyc】JAVA的多态
来源:互联网 发布:战略管理 知乎 编辑:程序博客网 时间:2024/06/14 17:57
先看代码,下面有我的分析。
package Test;import java.util.*;class baseclass{ public int book = 6; public int a=8; public void base(){ System.out.println("111"); } public void test(){ System.out.println("This is test!"); }}public class Test2 extends baseclass{ public String book = "邓志纯"; public int a = 10; public int b = 10; public void base(){ System.out.println("2222"); } public void sub(){ System.out.println("This is sub"); } public void test(){ System.out.println("哇"); } public static void main(String[] args){ /*baseclass bc = new baseclass(); System.out.println(bc.book); bc.test(); bc.base();//不存在多态 Test2 sc = new Test2(); System.out.println(sc.book); sc.test(); sc.base();*/ baseclass one = new Test2(); //下面存在多态 System.out.println(one.book); System.out.println(one.a); //System.out.println(one.b);无法无法编译 one.test(); one.base(); //one.sub();无法编译 }}
多态在《疯狂JAVA讲义》中的定义是相同类型的变量,调用同一方法呈现出不同的行为特征
理解许久,我用代码测试了下,因为变量one比较特殊,编译时类型是baseclass,运行时类型是Test2;就是说调用one中的变量和方法时必须是父类中有的(可以用这个代码测试one.b和one.sub),同时变量总是父类的(不存在被覆盖),方法则总是子类的(子类中有方法和父类重写,不是重写的话方法就还是父类的,不会被覆盖)
阅读全文
0 0
- 【Eternallyc】JAVA的多态
- 【Eternallyc】JAVA的输入
- 【Eternallyc】JAVA语法-instanceof运算符
- 【Eternallyc】函数reverse的基本用法
- 【Eternallyc】NEFU-117-素数个数的位数
- 【Eternallyc】HDU-2546-饭卡
- 【Eternallyc】素数筛选法
- 【Eternallyc】大数素数判断
- 【Eternallyc】qsort排序函数用法
- 【Eternallyc】实现两个数交换
- 【Eternallyc】函数PlaySound和sndPlaySound
- 【Eternallyc】模板题-Floyd算法
- 【Eternallyc】NEFU-2-哥德巴赫猜想
- 【Eternallyc】NEFU-119-组合素数
- 简单选择排序(Eternallyc)
- 【Eternallyc】C++中的sort排序函数
- 【Eternallyc】素数6N+1法
- 【Eternallyc】nefu-120-梅森素数
- 环境变量的配置
- FileStore::mkjournal()&&FileJournal::create()
- Hadoop集群配置ssh时,slave无法连接到master
- Spring RedisTemplate使用多种operation
- IIC详解
- 【Eternallyc】JAVA的多态
- 二维数组初始化的形式有?
- 引用类型(四)——基本包装类型(二)
- 字符串-leetcode 541. Reverse String II
- C++中随机函数rand()和srand()的用法
- QT遍历窗体的控件
- C语言入门第二篇,基本数据类型
- @RequestBody和@RequestParam区别
- ipbrother如何写能带来 SEO价值的文章