资源描述:
《面向对象程序设计Java第5章ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、面向对象程序设计Java2013年9月第5章超类、子类和继承性1.类的继承性2.null,this和super3.方法覆盖与运行时的多态4.final和abstract类和方法5.Object类类的继承性继承性是面向对象编程技术的最重要的基础概念之一。类的继承性允许创建分等级层次的类。在继承中,被继承的类叫超类(Superclass)或基类(Baseclass)、父类(Parentclass),继承的类叫继承类(Derivedclass)或子类(Subclass)。继承性表现在一个类对另一个类的成员的继承。继承类是对被继承类的扩展,由声明中的关键字extends指明。例:class
2、StudentextendsPerson{...}超类Person被子类Student继承或扩展。继承性特性如下:单一继承性:子类只能有一个超类,而超类可以有多个子类;子类继承超类的所有成员;子类可以创建自己的成员;子类不能继承超类的构造器,只能在构造器中通过super()调用超类的构造器;子类的构造器首先要调用超类的构造器;多态性之一:子类的成员隐藏和覆盖超类中相同的成员;多态性之二:超类的对象可以对子类的实例引用;由abstract和final修饰的类指示类的是否必须或不能被继承。创建子类,格式如下:[abstract
3、final]classSubClsextendsSupCl
4、s{SubClassBody}abstract是可选项,修饰的类叫抽象类,指示其对象引用的必须是其子类实例;final是可选项,修饰的类叫终结类,指示其不能被继承,不能有子类;SubCls是创建的类,称为子类;extends是关键字,指示两个类存在的继承关系;SuperCls是SubCls类的超类。在创建类时,若缺省extends,则该类就为Object类的直接子类。Object类是Java语言中所有类的直接或间接超类。Object类存放在java.lang包中。子类继承了超类的所有成员,这些成员就象子类创建的成员一样的使用。虽然子类可以继承超类所有成员,但是因为超类中成员的访问控
5、制,子类无法访问某些受限成员。在超类中,由private修饰的访问权限的成员变量和方法,虽然被子类继承,但是子类不能访问。类的继承性示例classPerson{Stringname;charsex;Datebirthday;voidsetData(Stringn,chars,Dateb){name=n;sex=s;birthday=b;}}classStudentextendsPerson{StringstuID;Stringspeciality;voidsetData(Stringn,chars,Dateb,Stringid,Stringspec){setData(n,s,b);
6、stuID=id;speciality=spec;}}类Person有成员:成员变量:name、sex、birthday成员方法:setData(String,char,Date)类Student有成员:成员变量:name、sex、birthday、stuID、speciality成员方法:setData(String,char,Date)、setData(String,char,Date,String,String)其中:红色标识的成员是类Student继承超类Person的成员。类的继承性成员变量的隐藏:在子类的创建中,如果出现了与其超类相同的成员变量,则超类中的成员变量被子类
7、中的成员变量所隐藏。方法覆盖:在子类的创建中,如果出现与超类中有相同名、同参数及同返回类型的成员方法,则超类中的成员方法被子类中的成员方法所覆盖。classSuperClass{intx;voidsetX(){x=10;}}classSubClassextendsSuperClass{intx;voidsetX(){x=100;}StringgetMessage(){return"super.x="+super.x+"tsub.x="+x;}}publicclassTestCovert{publicstaticvoidmain(String[]args){SubClasssc=n
8、ewSubClass();sc.setX();System.out.println(sc.getMessage());}}结果为:super.x=0sub.x=100超类SuperClass的成员x和setX()被子类SubClass的成员x和setX()所隐藏和覆盖。类的null,this和super三个量Java语言中,每个类均有三个量,它们具有特别的含义及用途。nullthissuperNullnull表示变量的值为“空”,用于表示对象或数组还没有相应的实例引用