java课件-继承与多态.ppt

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
类的继承 被继承的类称为父类或者超类或者基类 继承父类的类称为子类或者派生类 执行继承时,子类将获得父类的所有成员(包括private的成员),并具有自身特有的属性。 extends关键字 extends关键字用于继承类。 声明一个继承父类的类的通常形式如下: class subclass-name extends superclass-name { //类体 } 没有extends,默认父类为Object 一个类只能有一个父类,即单继承 子类继承父类的全部成员 继承示例 class Employee { String name; //姓名 char sex; //性别 Employee(String n, char s){ name = n; sex = s; } public String getName() { return name; } public char getSex(){ return sex;}} 继承分析 在子类中不能直接访问父类中的私有成员 子类和父类之间应该有“IS-A”关系 不要滥用继承,只有在分类学上有意义时,才应该使用继承 子类具有扩展超类的责任 继承的目的就是为了代码复用 里式代换原则 定义:无论何时,只要程序需要一个超类对象,那么就可以用一个子类对象来替代它。 Employee e; e=new Employee();//需要超类Employee对象 e=new Manager();//用子类对象替换掉超类对象 注意:反过来是不行的 多态和动态绑定 声明类型:对象变量被声明时的类型 实际类型:对象变量实际指向的对象类型 一个对象变量可以指向多种实际类型的现象称为“多态” 在运行时自动选择正确的方法进行调用的现象称为“动态绑定” Java根据对象的实际类型来进行方法调用 方法重载(overloading) 方法重载是Java实现面向对象的多态性机制的一种方式。 同一个类中多个方法有相同的名字,不同的参数列表,这种情况称为方法重载。 当重载方法被调用时,Java编译器根据参数的类型和数量来确定实际调用哪个重载方法的版本。 方法重载不考虑方法的返回类型。 重载构造函数 一个类可以有多个构造函数 如果一个类没有定义一个构造函数,Java 编译器将为这个类自动提供缺省构造函数(即无参的构造函数) 缺省构造函数将成员变量的值初始化为缺省值 一旦创建了自己的构造函数, Java 编译器将不再自动提供无参的构造函数。 重载构造函数提供了一组创建对象的方式,可以根据需要决定是否带初始参数。 方法覆盖(override) 方法覆盖是Java实现多态性机制的另一种方式。 在类层次结构中,如果子类中的一个方法与父类中的方法有相同的返回类型、相同的方法名并具有相同数量和类型的参数列表,这种情况称为方法覆盖。 当一个覆盖方法通过父类引用被调用,Java根据当前被引用对象的实际类型来决定执行哪个版本的方法。 可以通过super关键字调用直属父类中被覆盖的方法版本。 方法覆盖示例 class SuperClass { int a; SuperClass(){ a = 10; } public void printA(){System.out.println(父类中a =+a);} } class SubClass extends SuperClass { int a; SubClass(int a){ this.a = a; } public void printA(){ System.out.println(子类中a = +a); } } 包(package) 在Java中,包主要有以下用途 : 将类进行分类组织存放 避免命名冲突 包允许在更广的范围内保护类、数据和方法 包可以是类、接口和子包的集合 包中的文件被编译成.class文件后被放在与完整包名匹配的子目录中。实际是:基目录+包名 嵌套的包之间没有任何关系 例如:包java.util和 java.util.jar就是彼此无关的 使用包 创建包 package mypackage; 在一个Java源文件中,只能使用一个package语句, 并且通常位于Java源文件的第一行 访问 Java 包成员 mypackage.My_Class 导入包 import package_name.*; 在一个Java源文件中,可以使用多个import语句 导入子包 import package_name.cpackage.*; 类的静态成员-static 类中的静态变量、方法或代码块属于类,而不属于某个特定的对象。

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档