面向对象(类的继承和内部类).pptx
面向对象(类的继承和内部类)
上讲回顾初步让学生了解类和对象的概念掌握java中类和对象的创建方式构造函数掌握方法的重载
掌握类的继承掌握static/final关键字用法this与super的引用内部类本讲内容
继承已有类属性和行为新类已有类属性和行为+
新增属性和行为动物允许重用已有类来构造新类的特性
继承(inheritance)什么是继承(派生)?子类自动的拥有父类中定义的属性和方法.例如:猫生猫狗生狗 大象生大象概念:父类、基类、超类、子类、派生类、衍生类、类继承、类派生允许通过已有类构造新类,实现了代码的重用,在父类中定义相同的属性和方法,所有的子类无须重新定义这些属性和方法如:公共汽车、出租车、货车等都是汽车,但它们是不同的汽车,除了具有汽车的共性外,它们还具有自已的特点,我可以写一个汽车的类,可以通过继承父类的汽车的所有共性。
继承子类可以继承父类的一些属性和方法,那么它到底从父类继承了哪些东西呢?当子类和父类位于同一包中,子类继承父类中public、protected和默认访问级别的成员变量和成员方法。当子类和父类不在同一包中:子类继承父类中public、protected访问级别的成员变量和成员方法。
类继承的实现extends关键字用于继承类。声明一个继承父类的类的通常形式如下:classsubclass-nameextendssuperclass-name{//类体}没有extends,默认父类为Object只能有一个父类,即单继承注意被继承的类称为父类继承父类的类称为子类执行继承时,子类将获得父类的属性,并具有自身特有的属性。
类继承的实现PersonStringnameintageStringgetInfo()StudentStringnameintageStringschoolStringgetInfo()StringgetSchool()classPerson{publicStringname;publicintage;publicvoidgetInfo(){……}}classStudent{publicStringname;publicintage;publicStringschool;publicvoidgetInfo(){……}publicStringgetSchool(){……}}
继承实现示例classPerson{publicStringname;publicintage;publicvoidgetInfo(){……}}classStudentextendsPerson{publicStringschool;publicStringgetSchool(){……}}classWorkerextendsPerson{publicStringCompany;publicStringgetComany(){……}}示例:Student.java
示例二PersonStringnameintageStringgetInfo()StudentStringnameintageStringschoolStringgetInfo()StringgetSchool()WorkerStringnameintageStringCompanyStringgetInfo()StringgetCompany()Person是父类;定义了name/age两个属性,getInfo()方法Student/Worder分别是其的两个子类,除了已有的name/age/getInfo以外,还有自己的特有的属性和方法
01例如:动物类派生两栖动物类和哺乳动物类02图形类派生出矩形类和圆类等等03猫类派生出山猫、家猫04见实例:exp1.java继承实例
通过继承可以简化类的定义,实现代码的重用JAVA只支持单继承,不允许多重继承。可以有多层继承;类B继承类A;类C继承类B;子类继承父类的成员变量和成员方法,