- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 Java面向对象编程_2
第二章 Java面向对象编程(继承) 继承 从现有类派生出新类,称为继承。通过继承,可以实现源代码级的复用,提高程序的可维护性。 其中被继承的类称为父类,派生得到的类称为子类。 执行继承时,子类将获得父类的属性和行为,并具有自身特有的属性和行为,java语言不支持多重继承。 继承的实现 继承通过关键字extends声明。声明一个继承父类的类的通常形式如下: class subclass-name extends superclass-name { //类体 } 继承示例 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;} } 成员的访问与继承 class A {int i,j; void showij() {System.out.println(”i=”+i+”,j=”+j); } } super引用 super有两种使用形式:一是在子类的构造方法 中直接调用父类的构造函数,二是用来访问被 子类的成员隐藏或覆盖的父类成员。 调用父类构造函数形式:super(参数); 其中,方法名称换成super,参数跟父类构造函数参数一致,注意super必须是在子类构造函数中的第一个执行语句。而且,子类构造函数中如果没有super()语句,系统会自动加上一条super()的调用。 构造函数的调用,是按照继承的顺序,从超类到子类进行的。 访问被子类的成员覆盖的父类成员。 方法覆盖 方法覆盖是Java语言实现多态性机制的另一种方式,也称方法的重写。 在类层次结构中,如果子类中的一个方法与父类中的方法有相同的方法名并具有相同数量和类型的参数列表,不同之处只有方法体,这种情况称为方法覆盖。 当一个覆盖方法通过父类引用被调用时,Java语言根据当前被引用对象的类型来决定执行哪个版本的方法。 可以通过super关键字调用直接父类中覆盖的方法。 多态 方法覆盖示例 抽象方法 抽象方法 用abstract修饰的方法称为抽象方法。抽象方法是一种只有方法头、而没有具体方法的方法。 如:class AbstractTest { abstract void abstractmethod(); } 注意:抽象方法只有方法头的声明,用;代替方法体,没有大括号{}。 抽象类 超类中只定义了让所有子类共享的抽象方法,具体的细节需要子类去实现,这样的超类很抽象,称为抽象类。 注意,抽象类是不可使用的,或者说不能实例化对象。(但可以有构造函数) 当子类继承一个抽象类时,它必须重写父类的所有抽象方法,否则,子类也必须定义为抽象类。 接口 Java 程序一次只能继承一个类。如果想实现多继承可以通过接口实现。 接口是一种特殊的类,是一些抽象方法和固定变量的集合。接口不能有任何具体的方法,必须全是抽象方法;在接口中也可以声明变量,但必须是常量类型。接口可以通过关键字interface定义。 通过接口可以实现不相关类的相同行为,而不需考虑这些类之间的层次关系。 接口的定义 // 含抽象方法的接口 interface myinterface { abstract int add(int x, int y); abstract void volume(int x,int y, int z); } // 定义包含常量的接口 interface myconstants { public static final double price = 1450.00; public static final int counter = 5; } 实现接口 用关键字 implements 实现接口,例如: class demo implements myinterface 在类中对接口里面的方法进行重写(实现) 即可 如果有一个以上接口的被实现,则用逗号隔开接口名称,如下所示: class demo implements Mycalc, Mycount 接口使用示例 interface A { double g=9.8; void show( ); } 接口引用 接口不能包含构造函数,也就是说,接口不能实例化对象。但可以用接口名去引用一个对象,该对象必须是由实现了接口的类所实例化的对象。 包 为了管理类和接口,J
文档评论(0)