欢迎来到天天文库
浏览记录
ID:38719238
大小:97.00 KB
页数:10页
时间:2019-06-18
《继承、多态、接口、异常》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、继承面向对象的三大特征:封装、继承、多态1、定义:继承是软件可重用性的一种表现,新类可以在不增加自身代码的情况下,通过从现有的类中继承其属性和方法。继承最基本的作用就是使得代码课重用,增加软件的可扩充性。2、语法:访问修饰符class子类名extends父类名{}3、注意:l子类不能继承父类的构造方法、private成员和子类与父类不同包且使用默认访问权限的成员。l每个类只能有一个直接父类。4、特点:l可以继承public和protected修饰的属性和方法,不论子类和父类是否在同一个包里。l可以继承默认访问修饰符修饰的属性和方法,但是子类和父类必须在同一个包里l无法继承
2、父类的构造方法(可以通过super关键字调用,且调用时必须是子类构造方法的第一句)。l继承表达的是“**isa**”的关系。l可以使用super关键字调用父类成员:super只能出现在子类的方法和构造方法中,可以访问父类的属性、方法、构造方法;l继承是多态的基础,没有继承就没有多态。5、补充:访问修饰符本类同包子类其他private√默认的(Friendly)√√protected√√√public√√√√注:protected:不同包中只有实例化子类的对象可以调用protected成员。6、实例化子类对象l子类在实例化时,会首先执行其父类的构造方法,然后才执行子类的构造方法
3、。l一个类的构造方法在两种情况中总是会执行:创建该类的对象和创建该类的子类的对象。l子类继承父类时构造方法的调用规则:如果子类的构造方法中没有通过super调用父类的有参构造方法,也没有通过this调用自身的其他构造方法,则系统会默认先调用父类的无参构造方法。如果子类的构造方法中通过super调用父类的构造方法,那么将执行父类相应的构造方法。如果子类的构造方法中通过this调用自身的其他构造方法,在相应构造方法中应用以上两条规则。7、方法的重写如果从父类继承的方法不能满足子类的需求,可以在子类中对父类的同名方法进行重写即覆盖。要求:Ø发生的两个类中(子类重写父类的方法);Ø方
4、法名必须相同;Ø必须具有相同的参数列表(类型和个数);Ø返回值类型必须相同或者是其子类;Ø重写的方法的访问权限不能小于原方法的访问权限。注:构造方法不能重写8、方法重写和方法重载的区别与联系位置方法名参数表返回值访问修饰符方法重写子类相同相同相同或是其子类不能严于父类方法重载同类相同不同无关无关9、final关键字lFinal类不能被继承lFinal方法不能被重写lFinal属性不能被修改,且必须有初始值二、抽象方法和抽象类1、定义:当一个类的方法被abstract关键字修饰时,该方法称为抽象方法,抽象方法所在的类必须定义为抽象类。2、语法:抽象方法:访问修饰符abstrac
5、t返回类型方法名(参数列表);抽象类:abstractclass类名{}3、特点l抽象方法和抽象类需要用abstract修饰;l抽象方法没有方法体,抽象类不能实例化;l抽象方法必须在抽象类里面,而抽象类中可以包含抽象方法,也可以包含普通类的一切成员;l如果父类是抽象类,那么其所有的抽象方法必须在子类中实现(通过重写),除非子类也是抽象类;lAbstract修饰符不能喝final修饰符一起用;lPrivate关键字不能修饰抽象方法。三、多态1、定义:在程序设计的术语中,它意味着一个特定类型的变量可以引用不同类型的对象,并且能自动地调用引用的对象的方法。方法重写是实现多态的基础。
6、2、2个要素:子类重写父类方法、使用父类类型3、向上转型(自动类型转换):l子类到父类的转换l语法:父类型引用变量名=new子类型();l此时通过父类引用变量调用的方法时子类覆盖或继承父类的方法,不是父类的方法;l此时通过父类引用变量无法调用子类特有的方法。4、向下转型(强制类型转换):l父类类型转换为子类类型l语法:子类型引用变量名=(子类型)父类型的引用变量lInstanceof运算符:对象类型必须和其后面的参数所指的的类在继承上有上下级关系。通常和强制类型转换结合使用,判断其真实子类类型。5、优点²可替换性²可扩充性²接口性²灵活性²简化性6、应用形式:使用父类作为方法
7、的形参使用父类作为方法的返回值四、接口1、初识接口接口可以看做一种特殊的抽象类,接口是一个不能实例化的类型,它里面的所有方法都是抽象方法。2、语法接口定义语法:Publicinterface接口名{//接口成员}实现接口语法:Public类名implements接口名{实现方法普通方法}接口继承接口:修饰符interface接口名extends父接口1,父接口2,......{常量定义方法定义}同时继承抽象类和实现多个接口语法:Class类名extends父类名implements接口1,接口2,...
此文档下载收益归作者所有