欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    继承接口和内部类.ppt

    • 资源ID:88389714       资源大小:281.49KB        全文页数:12页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    继承接口和内部类.ppt

    继承继承继承继承 多态多态多态多态 抽象类抽象类抽象类抽象类 接口接口接口接口 内部类内部类内部类内部类第四章第四章 继承、接口和抽象类继承、接口和抽象类 继承继承继承继承继承的特点继承的特点继承的特点继承的特点 extends extends 父类名父类名父类名父类名;若无若无若无若无extends,extends,则默认父类则默认父类则默认父类则默认父类ObjectObject 子类将继承父类成员子类将继承父类成员子类将继承父类成员子类将继承父类成员,但不能直接访问父类但不能直接访问父类但不能直接访问父类但不能直接访问父类privateprivate成员成员成员成员 单继承单继承单继承单继承,多层继承多层继承多层继承多层继承 子类对父类可做扩展和特殊化子类对父类可做扩展和特殊化子类对父类可做扩展和特殊化子类对父类可做扩展和特殊化(1)(1)创建新的成员:成员变量和方法创建新的成员:成员变量和方法创建新的成员:成员变量和方法创建新的成员:成员变量和方法(2)(2)重新定义父类中已有的成员变量:隐藏重新定义父类中已有的成员变量:隐藏重新定义父类中已有的成员变量:隐藏重新定义父类中已有的成员变量:隐藏(3)(3)重新定义父类中已有的方法:覆盖重新定义父类中已有的方法:覆盖重新定义父类中已有的方法:覆盖重新定义父类中已有的方法:覆盖(override)(override)子类中的方法应与父类中的被覆盖的方法有完全相同的:参子类中的方法应与父类中的被覆盖的方法有完全相同的:参子类中的方法应与父类中的被覆盖的方法有完全相同的:参子类中的方法应与父类中的被覆盖的方法有完全相同的:参数列表、返回值;而且访问权限不能更严格数列表、返回值;而且访问权限不能更严格数列表、返回值;而且访问权限不能更严格数列表、返回值;而且访问权限不能更严格 super()super():调用父类被覆盖的方法;父类构造方法:调用父类被覆盖的方法;父类构造方法:调用父类被覆盖的方法;父类构造方法:调用父类被覆盖的方法;父类构造方法例:例:例:例:Circle.java,Cylinder.javaCircle.java,Cylinder.java 继承继承继承继承继承的特点继承的特点继承的特点继承的特点 子类的构造方法子类的构造方法子类的构造方法子类的构造方法 (1)(1)若子类的构造方法中若子类的构造方法中若子类的构造方法中若子类的构造方法中,没有使用没有使用没有使用没有使用supersuper调用父类的构造方调用父类的构造方调用父类的构造方调用父类的构造方法和法和法和法和thisthis调用重载的其他构造方法,则在创建子类对象时调用重载的其他构造方法,则在创建子类对象时调用重载的其他构造方法,则在创建子类对象时调用重载的其他构造方法,则在创建子类对象时,系统默系统默系统默系统默认先调用父类的无参构造方法认先调用父类的无参构造方法认先调用父类的无参构造方法认先调用父类的无参构造方法,然后执行子类的构造方法然后执行子类的构造方法然后执行子类的构造方法然后执行子类的构造方法;(2)(2)在子类的构造方法中使用在子类的构造方法中使用在子类的构造方法中使用在子类的构造方法中使用super(super(参数参数参数参数)调用父类的含参构调用父类的含参构调用父类的含参构调用父类的含参构造方法造方法造方法造方法,super,super必须是第一句必须是第一句必须是第一句必须是第一句 (3)this()(3)this()和和和和super()super()不能同时出现不能同时出现不能同时出现不能同时出现 例:例:例:例:Sandwich.javaSandwich.java(构造方法调用次序)(构造方法调用次序)(构造方法调用次序)(构造方法调用次序)多态多态多态多态一个引用变量可以引用多种实际类型的现象称为多态,在运行时能够自一个引用变量可以引用多种实际类型的现象称为多态,在运行时能够自一个引用变量可以引用多种实际类型的现象称为多态,在运行时能够自一个引用变量可以引用多种实际类型的现象称为多态,在运行时能够自动选择调用适当的方法称为动态绑定动选择调用适当的方法称为动态绑定动选择调用适当的方法称为动态绑定动选择调用适当的方法称为动态绑定引用变量的类型转换引用变量的类型转换引用变量的类型转换引用变量的类型转换 子类引用变量转换成父类引用变量子类引用变量转换成父类引用变量子类引用变量转换成父类引用变量子类引用变量转换成父类引用变量 (1 1)规则:沿着继承层次,从下往上,)规则:沿着继承层次,从下往上,)规则:沿着继承层次,从下往上,)规则:沿着继承层次,从下往上,子类可以自动转换成父类子类可以自动转换成父类子类可以自动转换成父类子类可以自动转换成父类 (2 2)转换时机:赋值,方法调用(参数传递)转换时机:赋值,方法调用(参数传递)转换时机:赋值,方法调用(参数传递)转换时机:赋值,方法调用(参数传递)EmployeeEmployeeManagerManagerSecretarySecretaryProgrammerProgrammerManager m=new Manager();Manager m=new Manager();Employee e=m;/Employee e=m;/赋值时发生自动转换赋值时发生自动转换赋值时发生自动转换赋值时发生自动转换e.raiseSalary();/e.raiseSalary();/正确正确正确正确e.setBonus();/e.setBonus();/错误错误错误错误raiseSalary()raiseSalary()setBonus()setBonus()多态多态多态多态引用变量的类型转换引用变量的类型转换引用变量的类型转换引用变量的类型转换 父类引用变量转换成子类引用变量(强制转换)父类引用变量转换成子类引用变量(强制转换)父类引用变量转换成子类引用变量(强制转换)父类引用变量转换成子类引用变量(强制转换)子类引用变量子类引用变量子类引用变量子类引用变量=(=(子类子类子类子类)父类引用变量父类引用变量父类引用变量父类引用变量 EmployeeEmployeeManagerManagerSecretarySecretaryProgrammerProgrammerEmployee e=new Employee();Employee e=new Employee();Manager m=e;/Manager m=e;/错误错误错误错误Employee e=new Employee();Employee e=new Employee();Manager m=Manger(e);Manager m=Manger(e);/强制转换强制转换强制转换强制转换 多态多态多态多态引用变量的类型转换引用变量的类型转换引用变量的类型转换引用变量的类型转换 Object Object 类类类类,toString方法方法例:PolyTest.javaPolyTest.java多态多态:为父类对象设计的任何代码都可以应用于子类为父类对象设计的任何代码都可以应用于子类 动态绑定动态绑定动态绑定动态绑定 对象方法的执行过程对象方法的执行过程对象方法的执行过程对象方法的执行过程 优点:无需对现存代码进行修改就可对程序进行扩展优点:无需对现存代码进行修改就可对程序进行扩展优点:无需对现存代码进行修改就可对程序进行扩展优点:无需对现存代码进行修改就可对程序进行扩展CnCn-1Cn-2C1C0顺序查找顺序查找 instanceofinstanceof 对象引用对象引用对象引用对象引用 instanceof instanceof 类(或接口)类(或接口)类(或接口)类(或接口)例:Polymorphism.javaPolymorphism.java 抽象类抽象类抽象类抽象类抽象类抽象类抽象类抽象类 abstractabstract 不包含方法定义的方法称为抽象方法不包含方法定义的方法称为抽象方法不包含方法定义的方法称为抽象方法不包含方法定义的方法称为抽象方法 任何包含抽象方法的类必须声明为抽象类任何包含抽象方法的类必须声明为抽象类任何包含抽象方法的类必须声明为抽象类任何包含抽象方法的类必须声明为抽象类 不能生成抽象类的对象不能生成抽象类的对象不能生成抽象类的对象不能生成抽象类的对象 抽象类的子类必须覆盖所有的抽象方法,才能生成对象,否抽象类的子类必须覆盖所有的抽象方法,才能生成对象,否抽象类的子类必须覆盖所有的抽象方法,才能生成对象,否抽象类的子类必须覆盖所有的抽象方法,才能生成对象,否则仍然是抽象类则仍然是抽象类则仍然是抽象类则仍然是抽象类 例例例例:AbstractClassTest.java:AbstractClassTest.javaarea()area()CircleCircleSquareSquareShapeShapearea()area()area()area()area()area()TriangleTriangle 接口接口接口接口接口接口接口接口 描述类具有什么功能,而不给出每个功能的具体实现描述类具有什么功能,而不给出每个功能的具体实现描述类具有什么功能,而不给出每个功能的具体实现描述类具有什么功能,而不给出每个功能的具体实现 接口中的方法和成员变量接口中的方法和成员变量接口中的方法和成员变量接口中的方法和成员变量 定义接口定义接口定义接口定义接口方法:隐含为方法:隐含为方法:隐含为方法:隐含为public abstractpublic abstract变量:变量:变量:变量:隐含为隐含为隐含为隐含为public static finalpublic static final public interface public interface 接口名接口名接口名接口名 extends extends 接口列表接口列表接口列表接口列表 返回类型返回类型返回类型返回类型 方法名();方法名();方法名();方法名();常量类型常量类型常量类型常量类型 常常常常量量量量名名名名=.=.;接口接口接口接口接口接口接口接口 使用接口使用接口使用接口使用接口 当一个类声明当一个类声明当一个类声明当一个类声明 implements implements 某一某一某一某一 interface interface 时,必须具体实现该时,必须具体实现该时,必须具体实现该时,必须具体实现该 interface interface 中定义的抽象方法,中定义的抽象方法,中定义的抽象方法,中定义的抽象方法,并把此方法定义为并把此方法定义为并把此方法定义为并把此方法定义为publicpublic的的的的(抽象类除外)抽象类除外)抽象类除外)抽象类除外)利用接口可实现多重继承,一个类可以实现一个或多个接口利用接口可实现多重继承,一个类可以实现一个或多个接口利用接口可实现多重继承,一个类可以实现一个或多个接口利用接口可实现多重继承,一个类可以实现一个或多个接口 例:例:例:例:InterfaceTest.javaInterfaceTest.java接口与抽象类的区别接口与抽象类的区别:接口中,数据必须是常量,抽象类可以有非常量的数据;接口中,数据必须是常量,抽象类可以有非常量的数据;接口中,每个方法只有方法名定义,没有实现,抽象类可以有具体的实现方法;接口中,每个方法只有方法名定义,没有实现,抽象类可以有具体的实现方法;Java对类的扩展只允许单重继承,对接口允许多重继承;对类的扩展只允许单重继承,对接口允许多重继承;强是关系:明显地描述父子关系,用抽象类;强是关系:明显地描述父子关系,用抽象类;弱是关系:对象拥有某种属性,弱是关系:对象拥有某种属性,用接口;用接口;内部类内部类内部类内部类在一个类的内部嵌套定义的类在一个类的内部嵌套定义的类在一个类的内部嵌套定义的类在一个类的内部嵌套定义的类成员内部类成员内部类成员内部类成员内部类 可以访问外部类的成员变量和方法可以访问外部类的成员变量和方法可以访问外部类的成员变量和方法可以访问外部类的成员变量和方法;反过来不行反过来不行反过来不行反过来不行 可以声明为可以声明为可以声明为可以声明为private,protected,publicprivate,protected,public或缺省或缺省或缺省或缺省 若为若为若为若为static,static,则不能访问非则不能访问非则不能访问非则不能访问非staticstatic成员成员成员成员,很少使用很少使用很少使用很少使用 若局部变量若局部变量若局部变量若局部变量,内部类的成员变量和外部类的成员变量重名内部类的成员变量和外部类的成员变量重名内部类的成员变量和外部类的成员变量重名内部类的成员变量和外部类的成员变量重名 则分别用变量名则分别用变量名则分别用变量名则分别用变量名;this.;this.变量名变量名变量名变量名:外部类名外部类名外部类名外部类名.this.this.变量名表变量名表变量名表变量名表示示示示 引用引用引用引用:若为若为若为若为public,public,则外部类名则外部类名则外部类名则外部类名.内部类名内部类名内部类名内部类名 Outer o=new Outer();Outer o=new Outer();Outer.Inner i=o.new Inner();Outer.Inner i=o.new Inner();或或或或Outer.Inner i=new Outer.new Inner();Outer.Inner i=new Outer.new Inner();例:例:例:例:InnerClassTest.javaInnerClassTest.java 内部类内部类内部类内部类方法中的内部类方法中的内部类方法中的内部类方法中的内部类 可以访问方法中可以访问方法中可以访问方法中可以访问方法中finalfinal局部变量局部变量局部变量局部变量 不能使用访问修饰符,不能使用不能使用访问修饰符,不能使用不能使用访问修饰符,不能使用不能使用访问修饰符,不能使用static static 例:例:例:例:MOuter.javaMOuter.java 继承继承继承继承(特点,子类的构造方法)特点,子类的构造方法)特点,子类的构造方法)特点,子类的构造方法)多态多态多态多态(引用变量的类型转换,动态绑定)引用变量的类型转换,动态绑定)引用变量的类型转换,动态绑定)引用变量的类型转换,动态绑定)抽象类(抽象类(抽象类(抽象类(abstractabstract)接口(实现多重继承)接口(实现多重继承)接口(实现多重继承)接口(实现多重继承)内部类内部类内部类内部类小结小结

    注意事项

    本文(继承接口和内部类.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开