多态的成员特点

⒈在多态中非静态成员函数的特点:

①在编译时期:参阅引用型变量所属的类中是否有调用方法。如果有,编译通过,否则编译失败;

②在运行时期:参阅对象所属的类中是否有调用的方法。

--------------------------------------------------

//总之:成员函数在调用时,编译看左边,运行看右边。//

--------------------------------------------------

2.在多态中成员同名变量的特点:(ps:不同名未考证)

无论编译还是运行,都参考左边(引用型变量所属的类)

3.在多态中静态成员函数的特点:

无论编译还是运行,都参考左边(引用型变量所属的类)

example:

Class Fu

{

int num=1;

public void method1()

{

System.out.println("fu_1");

}

public void method3()

{

System.out.println("fu_3");

}

//静态方法(包括变量)不所属于对象,它绑定于所属的类,会在内存中提前加载出来 public static void method4()

{

System.out.println("fu_4");

}

}

Class Zi extends Fu

{

int num=2;

public void method1()

{

System.out.println("zi_1");

}

public void method2()

{

System.out.println("zi_2");

}

public static void method4()

{

System.out.println("zi_4");

}

}

Class Duotaitest

{

public static void main (String [] args)

{

Fu f=new Zi ();

f.method1();

//f.method2(); 此行代码若存在,则编译失败,Fu类中没此方法

f.method3();

f.method4();

System.out.println(f.num);

Zi z= new Zi();

System.out.println(z.num);

}

/*

运行结果: zi_1

fu_3

fu_4 //静态方法不能被子类重写覆盖,若想调用子类中的静态方法(一般没这么用的,只是面试会用到)Zi.method4(类名.方法名)

1

2

*/

}

⒈在多态中非静态成员函数的特点:

①在编译时期:参阅引用型变量所属的类中是否有调用方法。如果有,编译通过,否则编译失败;

②在运行时期:参阅对象所属的类中是否有调用的方法。

--------------------------------------------------

//总之:成员函数在调用时,编译看左边,运行看右边。//

--------------------------------------------------

2.在多态中成员同名变量的特点:(ps:不同名未考证)

无论编译还是运行,都参考左边(引用型变量所属的类)

3.在多态中静态成员函数的特点:

无论编译还是运行,都参考左边(引用型变量所属的类)

example:

Class Fu

{

int num=1;

public void method1()

{

System.out.println("fu_1");

}

public void method3()

{

System.out.println("fu_3");

}

//静态方法(包括变量)不所属于对象,它绑定于所属的类,会在内存中提前加载出来 public static void method4()

{

System.out.println("fu_4");

}

}

Class Zi extends Fu

{

int num=2;

public void method1()

{

System.out.println("zi_1");

}

public void method2()

{

System.out.println("zi_2");

}

public static void method4()

{

System.out.println("zi_4");

}

}

Class Duotaitest

{

public static void main (String [] args)

{

Fu f=new Zi ();

f.method1();

//f.method2(); 此行代码若存在,则编译失败,Fu类中没此方法

f.method3();

f.method4();

System.out.println(f.num);

Zi z= new Zi();

System.out.println(z.num);

}

/*

运行结果: zi_1

fu_3

fu_4 //静态方法不能被子类重写覆盖,若想调用子类中的静态方法(一般没这么用的,只是面试会用到)Zi.method4(类名.方法名)

1

2

*/

}


相关文章

  • 水稻香味的起源和进化
  • 水稻香味的起源和进化 在水稻作物中,香味是评介其品质的一个重要参数,虽然甜菜碱醛脱氢酶基因(BADH2)的起源和进化在这个特征下还不清楚.我们假定广泛存在8个BADH2的非功能等位基因表明,这些基因具有不同的地理和遗传起源.尽管香味特征有多 ...查看


  • 血栓栓塞的文章-推荐
  • 慢性血栓栓塞性肺动脉高压的病理生理机制研究及心肺运动试验的预测作用 一.研究背景慢性血栓栓塞性肺动脉高压(Chronic thromboembolic pulmonary hypertension, CTEPH)在肺动脉高压分类中属于第四大 ...查看


  • 环境基因组研究_蒋义国
  • 综述 环境基因组研究 蒋义国 陈家 陈学敏 义的环境应答基因的多态性的研究, 确定它们引起环境暴露致病危险性方面的差异; 推进基因-环境相互作用对疾病发生影响的流行病学研究. (2) 环境基因组计划研究的疾病及候选基因:环境基因组计划要研究 ...查看


  • 结核病的分子生物学诊断技术研究进展
  • ・综述与讲座・ 结核病的分子生物学诊断技术研究进展 路超,刘义庆.壬长印.卢志明'≤山东大学陡属痿蛊医院,济舞250021> 关键词:结核瘸:结核分支杆菌:分子生物学 中匪分类号:R52:R34 文献标志码:A 文章编号:1002-2 ...查看


  • 面向对象程序设计历史及发展
  • 面向对象程序设计的历史及发展 姓名:郭一恒 班级:0901 学号:[1**********]14 自从计算机发展以来,程序设计的方法为了适应越来越复杂的程序设计的需要而发生了急剧的变化.计算机刚问世时.程序设计是通过计算机的控制板用二进制机 ...查看


  • 中华医学遗传学杂志
  • 中华医学遗传学杂志2005年8月第22卷第4期ChinJMedGenet,August2005,Vol.22,No.4・453・ ・临床遗传学研究・ 中国上海地区汉族人PGC-1α基因多态性与2型糖尿病 相关性研究 王艳波 于永春 李智 汪 ...查看


  • 什么叫肌酸激酶?高肌酸激酶的临床意义是什么?
  • 肌酸激酶超高 引起肌酸激酶超高的原因有病毒性心肌炎,皮肌炎,肌肉损伤,肌营养不良,心包炎,脑血管意外及心脏手术等都可以使CK增高. 但影响CK因素很多,不必过于担心,可做全套心肌酶检查. 首先考虑肌肉损伤引起 但需要排除心肌的病变 建议查一 ...查看


  • C++题目作业14
  • HZAU-专业C++作业14(继承与多态性) 判断题 1. 派生类的构造函数的初始化列表中如果不写对基类构造函数的调用,则自动调用基类的拷贝构造函数.f 2. 在多继承情况下,派生类的构造函数中基类构造函数的执行顺序取决于定义派生类时所指定 ...查看


  • 2011上海专升本C++考试大纲
  • <C++程序设计>考试大纲 一.基本要求 1. 掌握C++语言的基本语法规则. 2.掌握程序设计的三种基本结构. 3.掌握函数.指针和结构体的基本知识及相关应用. 4.熟练掌握有关类与对象的相关知识. 5.能够采用面向过程和面向 ...查看


热门内容