下的所有方法,在实现接口时,要实现所有接口中定义的所有方法,方法的实现可以具有具体的实现内容,也可以是空的方法,即只有方法名或参数,没有变量,没有具体操作语句,只有一对打括号{ }的空方法。
(3)继承的概念:
类是具有继承性的。继承一般是指子女从父母那里得到父母所拥有的东西。在程序设计中,在已有类的基础上构造一个新的类,这就称为继承,也可称作派生。继承而得到的类称为原来类的子类或派生类。原来的类称为父类或超类。类的继承具有传递性。子类对父类的继承关系体现了现实世界中特殊和一般的关系。通过继承可以更有效地组织程序结构,明确类与类之间的关系,并且可以充分利用已经写好的类,实现软件模块的重用。Java中的继承是通过extends关键字来实现的。在类定义的时候,在类名后面用extends来指明新定义类的父类,这样就在两个类之间建立了继承关系。Java的继承只能是单继承,一个类最多只能有一个父类,所以extends后面只能有唯一的一个父类名。两个类之间能否建立继承关系首先要看父类能否被子类访问。如果该类被public修饰,则可以被任何类继承;否则该类只能由同包类继承。此外,还要看该类是否被关键字final修饰,能不能派生子类。子类可以把父类的成员当作自己的成员,如果子类要调用父类中成员,就像调用自己的成员一样直接调用,或者用super关键字。
子类继承父类之后,子类对象就拥有了父类的成员。继承并不是把父类成员复制到子类。而是在程序执行加载类时,父类和子类分别加载各自的成员,当在生成子类对象时才把父类成员复制到子类对象。
定义好一个类就要创建它的对象。系统会自动调用构造函数对所属成员变量进行初始化。继承自父类的子类对象创建分三步,先调用超类的构造函数初始化父类成员,再执行子类构造函数对子类成员进行初始化,最后完成子类对象的创建。
构造函数只能由系统自动调用,如何在生成子类对象时调用父类的构造函数呢?调用父类的构造方法有两种形式。一是子类可以在自己的构造方法中使用super()来显示调用父类构造方法,但必须是子类构造方法的第一个可执行语句。第二种情况,如果子类构造方法中没有显式调用父类构造方法系统默认调用父类无参构造方法。如果父类没有无参构造方法,则编译出错。所以通常会在父类中显式定义无参构造函数。
子类对象的成员分两部分,继承自父类的成员和子类自己定义的成员。子类对象的成员使用也是先生成子类对象再用对象的引用加"."操作符调用。子类对象能否继承父类成员还由访问控制符决定。父类成员的访问控制符会影响到子类能否继承父类的成员。根据父类成员的访问控制符不同,有的父类成员可以被子类继承,有的则无法被继承。如果父类和子类在同一个包中,子类可以继承父类中除private成员外的其他成员;如果父类和子类不在一个包中,子类只能继承被public和protected修饰的成员。父类中的private成员变量不能被子类直接继承,但可以通过相关的方法间接访问。
继承的作用:体现类的层次关系、实现多态、代码重用。
(4)Java中的最终类:
在Java中被final声明的类,称为最终类,它不能再被其他类继承。通常一些有特殊作用的、用来完成标准功能的类,被定义成final的类,可以将它的内容、属性和功能固定下来,与它的类名形成稳定的映射关系,从而保证引用这个类时所实现的功能准确无误。比如说,涉及到系统运行的System类就被定义为final类。同时,我们自己在写程序的时候出于安全性的考虑也会把一些类定义为final类,防止别人通过字节码文件继承程序中的类,改变类的功能破坏程序。
(5)多态的定义:
多态是指拥有相同的形式,但根据不同的情形拥有不同的机能的特性。比如加运算,在数值运算中出现做加法,在字符串运算中出现做字符串的连接。这就是多态的一种表现。
Java中提供两种多态的机制:编译时多态性和运行时多态性。编译时多态性是通过方法重载实现的。重载就是在一个类中定义多个名字相同但参数不同的方法。在编译阶段,编译器会根据方法调用时传入的参数个数和类型决定调用哪个重载方法。而由方法覆盖实现的动态多态性称为运行时多态。也就是在父类和子类中定义名字参数完全相同的方法,程序调用哪一个方法,是由程序运行时调用方法的对象类型决定的,这就是运行时多态。
(6)Java中的类重载:
在同一个类中有多个名字相同但参数列表不同的方法,称这些方法是重载的。参数列表不同是指参数数目、类型、顺序不同。如果仅仅是参数名不同,系统不认为这是方法的重载,会把他们看作是同一个方法,编译不能通过。修饰符和返回类型可以不同也可以相同。系统只会根据参数列表不同自动调用相应
上一篇:
基于Android的推箱子游戏的设计——毕业论文(word文档)
下一篇:
面向android系统的测试工具_毕业论文