- 1、本文档共87页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
对象是类的实例-沈阳理工大学
5.14 本章小结 1.继承可以扩充已有类的功能。通过extends关键字实现,可将父类的成员(包含属性与方法)继承到子类。 2.Java在执行子类的构造方法前会先调用父类中无参的构造方法,其目的是为了对继承自父类的成员做初始化操作。 3.父类有多个构造方法时,可在子类的构造方法中通过super(参数)的形式来调用父类特定的构造方法。 4.this(参数)用于在同一类内调用其他的构造方法,而super(参数)则用于从子类的构造方法中调用父类的构造方法。 5.使用this调用属性或方法时会先从本类中查找。如果本类中没有查找到,再从父类中查找;而使用super则会直接从父类中查找需要的属性或方法。 6.重载是指在相同类内定义名称相同但参数个数或类型不同的方法,因此,Java可依据参数的个数或类型调用相应的方法。 7.覆写是在子类当中定义名称、参数个数与类型均与父类相同的方法,用以覆写父类的方法 8.如果父类的方法不希望被子类覆写,可在父类的方法前加上final关键字,这样该方法就不会被覆写了。 9.final的一个功能是把它放到数据成员变量前面,可定义一个常量,此常量的内容不可再修改。使用public、static、final可以声明全局常量。 10.所有的类均继承Object类。一个好的类应该覆写Object类中的toString()、equlas()方法,所有的对象都可以向Object类进行向上转型。 11.Java可以创建抽象类,专门用来当做父类。抽象类的作用类似于“模板”,其目的是依据其格式来修改并创建新的类。 12.抽象类中的方法分为两种,一种是普通方法,另一种是以abstract关键字开头的抽象方法。抽象方法没有定义方法体,而是要保留给抽象类派生出的新类来定义。 13.抽象类不能直接产生对象,必须通过对象的多态性进行实例化操作。 14.接口是方法和全局常量的集合。接口必须被子类实现,一个接口可以同时继承多个接口,一个子类可以同时实现多个接口。 15.Java不允许类的多重继承,但是允许实现多个接口。 16.Java对象的多态性分为向上转型和向下转型。 17.通过instanceof关键字判断对象属于哪个类。 18.匿名内部类的作用是可以利用内部类创建不具有名称的对象,并利用它访问类中的成员。 5.8 instanceof 关键字 作用:判断一个对象到底是哪个类的实例。 格式: 对象 instanceof 类 →返回boolean类型的值 范例InstanceofDemo.java 验证instanceof关键字的作用 5.8 instanceof 关键字 结论:通过子类实例化的对象b同时是子类和父类的实例,所以可以直接进行向上或向下转型;如果直接使用父类实例化本类的对象,则一定不是子类的实例,不能转型。 A a1 = new A() ; B b = new B() ; A a2 = new B() ; 5.9 抽象类与接口的应用 1. 为抽象类与接口实例化 2. 抽象类的实际应用——模板设计 3. 接口的实际应用——制定标准 4. 抽象类与接口之间的关系 在编程或开发中,要牢记的最重要一点是——一个类永远不要去继承一个已经实现好的类,而只能继承抽象类或实现接口。 1. 为抽象类与接口实例化 回顾:抽象类和接口中都包含抽象方法,抽象方法是没有方法体的方法,无法实现某一具体的功能,所以抽象类和接口不能直接实例化对象。需要有子类继承,子类必须覆写父类中的全部抽象方法。 如今:学了对象的多态性后,可以通过子类的向上转型为抽象类与接口间接实例化对象。这样在使用抽象类与接口时,就可调用本子类中所覆写过的方法。 范例AbstractCaseDemo01.java 为抽象类实例化 abstract class A{ // 定义抽象类A public abstract void print() ;// 定义抽象方法print() } class B extends A { // 定义子类,继承抽象类 public void print(){ // 覆写抽象方法 System.out.println(Hello World!!!) ; } } public class AbstractCaseDemo01{ public static void main(String args[]){ A a = new B() ; // 通过子类为抽象类实例化 a.print() ; } } 范例InterfaceCaseDemo01.java 为接口实例化 interface A{ // 定义抽象类A void print()
文档评论(0)