- 1、本文档共71页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ch3-Java与面向对象技术.ppt
覆盖方法的调用 对于重写的方法,Java运行时系统根据调用该方法的实例的类型来决定选择哪个方法调用。 public class DemoCar { public static void main( String args[ ] ) { Car aCar = new Trash_Car( ); aCar. push_break( ); } } 在这里, 类Trash_Car中的push_break( )方法将被调用。 2、Java中的类、方法和变量 ——覆盖 方法覆盖时应遵循的原则 (1)覆盖后的方法不能比被覆盖的方法有更严格的访问权限。 (2)覆盖后的方法不能比被覆盖的方法产生更多的例外。 2、Java中的类、方法和变量 ——覆盖 类方法的重载 方法重载即指多个方法可以享有相同的名字。但是这些方法的参数必须不同,或者是参数个数不同,或者是参数类型不同。 例如,要打印不同类型的数据,int, float, String,不需要定义不同名的方法: printInt(int); printFloat(float); printString(String)。 利用方法重载,只需要定义一个方法名:println(),接收不同的参数: println(int); println(float); println(String); StringBuffer vs. ResultSet 2、Java中的类、方法和变量 ——重载 多态性 类方法的重载是一种多态性。除此之外,多态性还可以是指在程序中需要使用父类对象的地方,都可以用子类对象来代替。 例如: public class Employee extends Object {……} public class Manager extends Employee {……} 则: Employee e = new Manager(); //合法语句 通过 instanceof 可以判断父类引用所引用的对象实例的实际类型。 2、Java中的类、方法和变量 ——多态性 可以用方法来实现对成员变量的隐藏: 设置变量方法:setVariable() 获取变量方法:getVariable() class Sample { protected int x; …… void setX(int var ) { x = var; } int getX() { return x; } …… } 2、Java中的类、方法和变量 ——成员变量的隐藏 在Java语言中,提供了操作符instanceof用来判断对象是否属于某个类的实例。 public void method (Employee e) { if ( e instanceof Manager ) { …//do something as a Manager } else if ( e instanceof Contractor ) { …//do something as a Contractor } else { … //do something else } } 2、Java中的类、方法和变量 ——对象状态的确定 Employee Manager Contractor 2、Java中的类、方法和变量 ——内嵌类(inner class) 在一个类的内部声明的类,称为内嵌类。 public class Stack { private Vector items; ...//code for Stacks methods and constructors not shown... public Enumeration enumerator() { return new StackEnum(); } class StackEnum implements Enumeration { int currentItem = items.size() - 1; public boolean hasMoreElements() { return (currentItem = 0); } public
文档评论(0)