java课程2013内容联讲b.ppt

  1. 1、本文档共65页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* (18): what is the result when you compile and run the following code? (答案:0) public class NameClass { private static int y; public static void main(String[] args) { name(y); System.out.println(y); } public static void name(int y) { y--; } } * (19): what is the result when you compile and run the following code? (摘自SCJP试题----较别扭的题目) Class Example{ static void main(String [] args) { System.out.println(“OK”); } } Select all right answers: A. A Compiler error; B. A runtime error; C: OK; 答案: C 解释: 根据一般方法前面可以缺省public的原则, 此处可以选择C做答案; 声明为public, 是为了main()方法可以从任意一个java运行环境中被调用. 但是, 本示例尽管编译没有错误,但不能执行; 因为Eclipse环境提示: main()方法缺少public. (也可以理解为虚拟机加载器的提示. ) * * Chapter09 继 承 继承的概念: 继承允许我们先定义一个很通用的类(基类), 然后通过添加细节定义出较专用的类(派生类) 派生类对基类的继承性(包括实例变量和方法). 派生类的添加性(也包括实例变量和方法). 继承实际上经常性的包含了方法的覆盖,覆盖解决了子类和父类之间的重名问题。 派生类的构造函数 Use super to invoke a constructor in parent class 一般用来初始化哪里的实例变量? 合理的派生类构造函数应该怎样初始化各个实例变量? 怎么样初始化基类的实例变量, 怎么样初始化派生类自己的实例变量? Use super to invoke a common method in base class(使用super可调用基类的一个普通方法,或者一个被派生类覆盖的方法) Use this to invoke a constructor within the class 争议的问题:派生类继承父类的构造函数吗?(No !) * 掌握:super的使用问题: 如果在子类构造方法中使用super()关键字,必须放在开始之处吗?此时的super()做什么? 创建子类的对象时,实际是首先运行子类自身的构造方法吗? 子类不使用super关键字调用父类的构造方法时会是什么情况呢? 注意事项(掌握) super指向父类对象,仅在子类的方法中调用父类方法时使用。 但是在一个类的静态方法(如main方法)中,不能够使用super关键字调用父类的方法。因为super的使用隐含一个匿名对象. * 覆盖: 在派生类中, 若一个方法定义与基类中已有的某个方法拥有同样的名称, 参数数目及类型, 则称为覆盖 覆盖的过程:创建派生类对象后, 调用被覆盖的方法时, 调用的是派生类自己的方法 例如:原教材图7.13(画字符图形的程序) (了解呵呵) Triangle top = new Triangle(indent, topWidth); Box base = new Box(indent + (topWidth/2) - (bottomWidth/2), bottomHeight, bottomWidth) top.drawAt(1); base.drawAt(0); 注意:方法drawAt()是基类方法而不是子类方法,该方法里面要执行方法drawHere( ),而这个方法在基类和子类都存在,那么在执行上述top.drawAt(1)方法时执行的是哪一个drawHere( ) ? ( 答案: 因为top是派生类对象,所以仍然执行派生类的方法drawHere( ) ) 假设top是Figure类型,若将其指向子类,那又怎样? Figure: 图形 Box 矩形 Triangle三角形

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档