1.类的继承格式
class 父类 // 定义父类
{
}
class 子类 extends 父类 // 用 extends 关键字实现类的继承
{
}
2. super 主要的功能是完成子类调用父类中的内容,也就是调用父类中的属性或方法。用 super 调用父类中的构造方法,只能放在程序的第一行。
super 关键字不仅可以调用父类中的构造方法,也可以调用父类中的属性或方法.
super 调用属性或方法
super. 父类中的属性 ;
super. 父类中的方法() ;
3.方法的复写
class Super
{
访问权限 方法返回值类型 方法 1(参数 1)
{}
}
class Sub extends Super
{
访问权限 方法返回值类型 方法 1(参数 1) //复写父类中的方法
{}
}
4.子类复写父类中的方法时,被子类复写的方法不能拥有比父类中更严格的访问权
限;
5.this 与 super 的比较
this
(1)表示当前对象
(2) 调用本类中的方法或属性
(3) 调用本类中的构造方法时,放在程序首行
super
(1)子类调用父类的方法或属性
(2)调用父类中构造方法时,放在程序首行
读者从上表中不难发现,用 super 或 this 调用构造方法时都需要放在首
行,所以,super 与 this 调用构造方法的操作是不能同时出现的。
6.抽象类定义规则
· 抽象类和抽象方法都必须用 abstract 关键字来修饰。
· 抽象类不能被实例化,也就是不能用 new 关键字去产生对象。
· 抽象方法只需声明,而不需实现。
· 含有抽象方法的类必须被声明为抽象类,抽象类的子类必须复写所有的抽象方法后才能被实例化,否则这个子类还是个抽象类。
7.抽象类的定义格式
abstract class 类名称 // 定义抽象类
{
声明数据成员 ;
访问权限 返回值的数据类型 方法名称(参数…)
{
… 定义一般方法
}
abstract 返回值的数据类型 方法名称(参数…) ;
// 定义抽象方法,在抽象方法里,没有定义方法体
}
在抽象类定义的语法中,方法的定义可分为两种:一种是一般的方法,它和
先前介绍过的方法没有什么两样;另一种是“抽象方法” ,它是以 abstract 关键字为开头的方法,此方法只声明了返回值的数据类型、方法名称与所需的参数,
但没有定义方法体。
8.在 Java 中声明类、属性和方法时,可使用关键字 final 来修饰。
(1) final 标记的类不能被继承。
(2) final 标记的方法不能被子类复写。
(3) final 标记的变量(成员变量或局部变量)即为常量,只能赋值一次。
9.(1) 接口里的“抽象方法”只要做声明即可,而不用定义其处理的方式;
(2) 数据成员必须赋初值,这样就可以了。
10.接口的定义格式
interface 接口名称 // 定义抽象类
{
final 数据类型 成员名称 = 常量 ; // 数据成员必须赋初值
abstract 返回值的数据类型 方法名称(参数…) ;
// 抽象方法,注意在抽象方法里,没有定义方法主体。
}
11.接口的实现
class 类名称 implements 接口 A,接口 B // 接口的实现
{
…
}
12.接口的扩展(或继承)也是通过关键字 extends 来实现的。有趣的是,
一个接口可以继承多个接口,这点与类的继承有所不同。格式是接口扩展的语法:
接口的扩展
interface 子接口名称 extends 父接口 1,父接口 2,…
{
......
}
13.因为父类对象并非由其本身的类实例化,而是通过子类实例化,这就是所谓的对象的多态性,即子类实例化对象可以转换为父类实例化对象。
一、向上转型可以自动完成;
二、向下转型必须进行强制类型转换。并非全部的父类对象都可以强制转换为子类对象。
14.可以用 instanceof 判断一个类是否实现了某个接口,也可以用它来判断一个实例对象是否属于一个类。instanceof 的语法格式为:
对象 instanceof 类(或接口)
它的返回值是布尔型的,或真(true)、或假(false)。
15.接口是可以被实例化的,但是不能被直接实例化,只能通过其子类进行实例化。
16.1、通过 extends 关键字,可将父类的成员(包含数据成员与方法)继承到子类。
2、 Java 在执行子类的构造方法之前,会先调用父类中无参的构造方法,其目的是为了对继承自父类的成员做初始化的操作。
3、 父类有数个构造方法时,如要调用特定的构造方法,则可在子类的构造方法中,通过 super()这个关键字来完成。
4、 this()是在同一类内调用其它的构造方法, 而 super()则是从子类的构造方法调用其父类的构造方法。
5、 this()除了可用来调用同一类内的其它构造方法之外,如果同一类内“实例变量”与局部(local)变量的名称相同时,也可利用它来调用同一类内的“实例变量” 。
6、 this()与 super()其相似之处: (1)当构造方法有重载时,两者均会根据所给予的参数的类型与个数,正确地执行相对应的构造方法。 (2)两者均必须编写在构造方法内的第一行, 也正是这个原因, this()与 super()无法同时存在同一个构造方法内。
7、 “重载” (overloading) ,它是指在相同类内,定义名称相同,但参数个数或类型不同的方法,因此 Java 便可依据参数的个数或类型调用相应的方法。
8、 “复写” (overriding) ,它是在子类当中,定义名称、参数个数与类型均与父类相同的方法,用以复写父类里的方法。
9、 如果父类的方法不希望子类的方法来复写它,可在父类的方法之前加上“final”关键字,如此该方法便不会被复写。
10、final 的另一个功用是把它加在数据成员变量前面,如此该变量就变成了一个常量(constant) ,如此便无法在程序代码中再做修改了。
11、所有的类均继承自 Object 类。
12、复写 Object 类中的 equals() method 可用来比较两个类的对象是否相等。
13、Java 可以创建抽象类,专门用来当做父类。抽象类的作用类似于“模板” ,其目的是依据其格式来修改并创建新的类。
14、抽象类的方法可分为两种:一种是一般的方法,另一种是以 abstract 关键字开头的“抽象方法” 。 “抽象方法”并没有定义方法体,而是要保留给由抽象类派生出的新类来定义。
15、利用父类的变量数组来访问子类的内容的较好的做法是:
(1) 先创建父类的变量数组;
(2) 利用数组元素创建子类的对象,并以它来访问子类的内容。
16、抽象类不能直接用来产生对象
。
17、接口的结构和抽象类非常相似,它也具有数据成员与抽象 method,但它与抽象类有两点不同: (1) 、接口的数据成员必须初始化。 (2) 、接口里的方法必须全部都声明成 abstract。
18、利用接口的特性来打造一个新的类,称为接口的实现(implementation) 。
19、Java 并不允许多重继承。
20、接口与一般类一样,均可通过扩展的技术来派生出新的接口。原来的接口称为基本接口或父接口;派生出的接口成为派生接口或子接口。通过这种机制,派生接
口不仅可以保留父接口的成员,同时也可以加入新的成员以满足实际的需要。
21、Java 对象的多态性分为:向上转型(自动) 、向下转型(强制) 。
22、通过 instanceof 关键字,可以判断对象属于那个类。
23、匿名内部类(anonymous inner class)的好处是可利用内部类创建不具有名称的对象,并利用它访问到类里的成员。
class 父类 // 定义父类
{
}
class 子类 extends 父类 // 用 extends 关键字实现类的继承
{
}
2. super 主要的功能是完成子类调用父类中的内容,也就是调用父类中的属性或方法。用 super 调用父类中的构造方法,只能放在程序的第一行。
super 关键字不仅可以调用父类中的构造方法,也可以调用父类中的属性或方法.
super 调用属性或方法
super. 父类中的属性 ;
super. 父类中的方法() ;
3.方法的复写
class Super
{
访问权限 方法返回值类型 方法 1(参数 1)
{}
}
class Sub extends Super
{
访问权限 方法返回值类型 方法 1(参数 1) //复写父类中的方法
{}
}
4.子类复写父类中的方法时,被子类复写的方法不能拥有比父类中更严格的访问权
限;
5.this 与 super 的比较
this
(1)表示当前对象
(2) 调用本类中的方法或属性
(3) 调用本类中的构造方法时,放在程序首行
super
(1)子类调用父类的方法或属性
(2)调用父类中构造方法时,放在程序首行
读者从上表中不难发现,用 super 或 this 调用构造方法时都需要放在首
行,所以,super 与 this 调用构造方法的操作是不能同时出现的。
6.抽象类定义规则
· 抽象类和抽象方法都必须用 abstract 关键字来修饰。
· 抽象类不能被实例化,也就是不能用 new 关键字去产生对象。
· 抽象方法只需声明,而不需实现。
· 含有抽象方法的类必须被声明为抽象类,抽象类的子类必须复写所有的抽象方法后才能被实例化,否则这个子类还是个抽象类。
7.抽象类的定义格式
abstract class 类名称 // 定义抽象类
{
声明数据成员 ;
访问权限 返回值的数据类型 方法名称(参数…)
{
… 定义一般方法
}
abstract 返回值的数据类型 方法名称(参数…) ;
// 定义抽象方法,在抽象方法里,没有定义方法体
}
在抽象类定义的语法中,方法的定义可分为两种:一种是一般的方法,它和
先前介绍过的方法没有什么两样;另一种是“抽象方法” ,它是以 abstract 关键字为开头的方法,此方法只声明了返回值的数据类型、方法名称与所需的参数,
但没有定义方法体。
8.在 Java 中声明类、属性和方法时,可使用关键字 final 来修饰。
(1) final 标记的类不能被继承。
(2) final 标记的方法不能被子类复写。
(3) final 标记的变量(成员变量或局部变量)即为常量,只能赋值一次。
9.(1) 接口里的“抽象方法”只要做声明即可,而不用定义其处理的方式;
(2) 数据成员必须赋初值,这样就可以了。
10.接口的定义格式
interface 接口名称 // 定义抽象类
{
final 数据类型 成员名称 = 常量 ; // 数据成员必须赋初值
abstract 返回值的数据类型 方法名称(参数…) ;
// 抽象方法,注意在抽象方法里,没有定义方法主体。
}
11.接口的实现
class 类名称 implements 接口 A,接口 B // 接口的实现
{
…
}
12.接口的扩展(或继承)也是通过关键字 extends 来实现的。有趣的是,
一个接口可以继承多个接口,这点与类的继承有所不同。格式是接口扩展的语法:
接口的扩展
interface 子接口名称 extends 父接口 1,父接口 2,…
{
......
}
13.因为父类对象并非由其本身的类实例化,而是通过子类实例化,这就是所谓的对象的多态性,即子类实例化对象可以转换为父类实例化对象。
一、向上转型可以自动完成;
二、向下转型必须进行强制类型转换。并非全部的父类对象都可以强制转换为子类对象。
14.可以用 instanceof 判断一个类是否实现了某个接口,也可以用它来判断一个实例对象是否属于一个类。instanceof 的语法格式为:
对象 instanceof 类(或接口)
它的返回值是布尔型的,或真(true)、或假(false)。
15.接口是可以被实例化的,但是不能被直接实例化,只能通过其子类进行实例化。
16.1、通过 extends 关键字,可将父类的成员(包含数据成员与方法)继承到子类。
2、 Java 在执行子类的构造方法之前,会先调用父类中无参的构造方法,其目的是为了对继承自父类的成员做初始化的操作。
3、 父类有数个构造方法时,如要调用特定的构造方法,则可在子类的构造方法中,通过 super()这个关键字来完成。
4、 this()是在同一类内调用其它的构造方法, 而 super()则是从子类的构造方法调用其父类的构造方法。
5、 this()除了可用来调用同一类内的其它构造方法之外,如果同一类内“实例变量”与局部(local)变量的名称相同时,也可利用它来调用同一类内的“实例变量” 。
6、 this()与 super()其相似之处: (1)当构造方法有重载时,两者均会根据所给予的参数的类型与个数,正确地执行相对应的构造方法。 (2)两者均必须编写在构造方法内的第一行, 也正是这个原因, this()与 super()无法同时存在同一个构造方法内。
7、 “重载” (overloading) ,它是指在相同类内,定义名称相同,但参数个数或类型不同的方法,因此 Java 便可依据参数的个数或类型调用相应的方法。
8、 “复写” (overriding) ,它是在子类当中,定义名称、参数个数与类型均与父类相同的方法,用以复写父类里的方法。
9、 如果父类的方法不希望子类的方法来复写它,可在父类的方法之前加上“final”关键字,如此该方法便不会被复写。
10、final 的另一个功用是把它加在数据成员变量前面,如此该变量就变成了一个常量(constant) ,如此便无法在程序代码中再做修改了。
11、所有的类均继承自 Object 类。
12、复写 Object 类中的 equals() method 可用来比较两个类的对象是否相等。
13、Java 可以创建抽象类,专门用来当做父类。抽象类的作用类似于“模板” ,其目的是依据其格式来修改并创建新的类。
14、抽象类的方法可分为两种:一种是一般的方法,另一种是以 abstract 关键字开头的“抽象方法” 。 “抽象方法”并没有定义方法体,而是要保留给由抽象类派生出的新类来定义。
15、利用父类的变量数组来访问子类的内容的较好的做法是:
(1) 先创建父类的变量数组;
(2) 利用数组元素创建子类的对象,并以它来访问子类的内容。
16、抽象类不能直接用来产生对象
。
17、接口的结构和抽象类非常相似,它也具有数据成员与抽象 method,但它与抽象类有两点不同: (1) 、接口的数据成员必须初始化。 (2) 、接口里的方法必须全部都声明成 abstract。
18、利用接口的特性来打造一个新的类,称为接口的实现(implementation) 。
19、Java 并不允许多重继承。
20、接口与一般类一样,均可通过扩展的技术来派生出新的接口。原来的接口称为基本接口或父接口;派生出的接口成为派生接口或子接口。通过这种机制,派生接
口不仅可以保留父接口的成员,同时也可以加入新的成员以满足实际的需要。
21、Java 对象的多态性分为:向上转型(自动) 、向下转型(强制) 。
22、通过 instanceof 关键字,可以判断对象属于那个类。
23、匿名内部类(anonymous inner class)的好处是可利用内部类创建不具有名称的对象,并利用它访问到类里的成员。