Java细节.doc

上传人:11****ws 文档编号:2973964 上传时间:2019-05-13 格式:DOC 页数:7 大小:42.89KB
下载 相关 举报
Java细节.doc_第1页
第1页 / 共7页
Java细节.doc_第2页
第2页 / 共7页
Java细节.doc_第3页
第3页 / 共7页
Java细节.doc_第4页
第4页 / 共7页
Java细节.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、public class Vehicle /startUp 方法表示一般交通工具的启动功能 public void startUp() System.out.println(“一般交通工具的启动方法! “); /汽车类,其继承了交通工具类并覆盖了启动方法( startUp), public class Car extends Vehicle /startUp 方法表示一般交通工具的启动功能 public void startUp() System.out.println(“轿车的启动方法! “); public class Sample4_5 public static void main(S

2、tring args) /创建对象并调用方法 Vehicle v=new Car(); System.out.print(“实际调用的方法为: “); v.startUp(); 注意:当父类的引用指向子类对象时,若访问被重写的方法,则将访问被重新定义的子类中的方法。 public class Car String aMember=“我是汽车类的成员变量 “; public class Truck extends Car String aMember=“我是卡车类的成员变量,汽车类也有 “; public class Sample4_10 public static void main(Stri

3、ng args) Car c = new Truck(); System.out.println(“访问的成员为: “ + c.aMember + “!“); /System.out.println(“访问的成员为: “+(Truck)c).aMember+“!“); 注意:看似子类的属性和父类是一样的,但是这不是覆盖,属性中没有覆盖的说法。虽然对象是子类 Truck 的,但打印的是父类 Car 的成员变量。对于成员变量的访问系统接受的是引用类型,引用是哪个类的,系统就访问哪个类的成员。 (成员变量按引用的类型调用! ) 注意:方法和成员变量的调用不一样,到底是调用哪个的,注意区分。 3.图形

4、解析 Car c = new Truck(); 4. public class Sample4_8 private int x, y; public Sample4_8(int x, int y) this.x = x; this.y = y; 父类 引用变量 子类对象 下面的构造函数调用上面的构造函数 public Sample4_8() this(0, 0); /this(参数)调用本类中另一种形成的构造函数 public static void main(String srgs) Sample4_8 s = new Sample4_8(); System.out.println(s.x)

5、; System.out.println(s.y); 注意:当一个类中有多个构造函数时,可以通过 this 关键字相互调用。根据参数的个数、类型,选择调用哪一个构造函数。 5. public class Sample4_6 private String s = “haha“; public String getString() String s = “kaka“; System.out.println(“方法中 :“ + s); return this.s; public static void main(String args) Sample4_6 g = new Sample4_6();

6、System.out.println(g.getString(); 注意调用的成员变量! this 是指当前对象。 6. 1 一个子类只能继承一个父类,一个父类可以有一个或多个子类。 Java 只支持单继承,但是可以通过接口,实现意义上的多继承。 2 父 类的引用 可以 指向子类对象 ,即可以将子类对象看做父类对象。反之,子类的引用不能指向父类对象。 7. public abstract class Car /定义抽象方法 brake public abstract void brake(); public class Truck extends Car / 实现 brake 方法 publi

7、c void brake() System.out.println(“卡车刹车! “); public class SUV extends Car / /实现 brake 方法 public void brake() System.out.println(“正在 SUV 上刹车! “); public class Sample4_18 public static void main(String args) /声明 Car 引用 c 并将其指向 Truck 类的对象 Car c=new Truck(); Car c2=c; Car c3=new Truck(); System.out.prin

8、t(“调用的方法为: “); /使用引用调用 brake 方法 c.brake(); c2.brake(); c3.brake(); /*上面 3 条语句调用的都是 子类即 Truck 中的 brake 方法,这就是最上面所说的成员方法的调用。见最上面! (当父类的引用指向子类对象时,若访问被重写的方法,则将访问被重新定义的子类中的方法 )*/ /将引用 c 指向 Mini 类的对象 c=new SUV(); System.out.print(“调用的方法为: “); /使用引用 c 调用 brake 方法 c.brake(); 注意:以上代码都是正确的。红色部分说明了 一个对象可以有多个引用

9、 ,但一个引用只能指向一个对象。 8.java 中的 main 为什么是 static? 1 Java 编程思想有言:如果不需要内部类对象与其外围内对象之间有关系,那么可以将内部内声明为 static。记住,普通的内部类对象隐式地保存了一个引用,指向创建它的外围对象 (详见: 201 页) 2 jvm 装载的时候可以直接调用,否则还要 new 一个对象才能调用,多麻烦? 3 main 函数其实也是所在类的一个方法,就比如一个类是 test,那么该类的main 其实就是 test.main(String args),众所周知如果一个方法不是静态的,则要先实例化该类,比如要这样 test t=ne

10、w test(); 然后才能调用 test.main(); 而这对于运行一个程序的主函数来说是不现实的,所以比如把 main 函数定义为static,使 test.main()可以直接被调用。 4 如果是动态的必须先实例化对象,才能访问。 但是 main()一般作为入口函数,通常是静态的,这样可以直接访问。 9. 抽象类和接口的区别 声明方法的存在而不去实现它的类被叫做抽象类( abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建 abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的

11、一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。 接口( interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样 的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义 static final 成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有

12、抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换, instanceof 运算符可以用来决定某对象的类是否实现了接口 接口是公开的,里面不能有私有的方法 或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的, 另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。 还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如 Remote 接口)和数据共享(里面的变量全是常量)的作用 . 如下给出两者的简单对比表格。 接口 抽象类 多继承 支持 不支持 类型限制 没有 有,只能是引用类型 方法实现 继承类型中必须给出方法实现 继承类中可以不给出 扩展性 比较麻烦 相对比较灵活 多层继承 比较麻烦,需要借助虚函数 比较灵活 http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。