抽象类的基本概念
通过继承可以从原有的类派生出新的类。原有的类称为父类,而新的类则称为派生类或子类。通过继承机制,派生出的新类不仅可以保留原来类的功能,而且还可以拥有更多的功能。
在java中一额可以创建一种类专门用来当作父类,这种类称为“抽象类”。抽象类的作用类似“模版”,其目的是要设计者依据他的格式来修改并创建新的类但是在抽象类的使用中同样存在单继承的局限,即一个子类只能继承一个抽象类。
抽象类的定义及使用规则如下:
*****************************************************
1.包含一个抽象方法的类必须是抽象类。
2.抽象类和抽象方法都要使用abstract关键字声明
3.抽象方法只需声明而不需要实现。
4.抽象类必须被子继承,子类(如果不是抽象类)必须覆写抽象类中的全部抽象方法
*****************************************************
【抽象类的定义格式】
abstract class 抽象类名称{
属性;
访问权限 返回值类型 方法名称(参数){
return 返回值;
}
访问权限abstract返回值类型 方法名称(参数);
//在抽象方法中是没有方法体的
}
例子:定义一个抽象类
package test4; abstract class A { // 定义抽象类a public static final String FLAG = "CHINA"; private String name = "张三"; public String getName() {// 取得name的值 return name; } public void setName(String name) { // 设置name值 this.name = name; } public abstract void print(); // 声明抽象方法 } class B extends A { // B继承A public void print() { // 覆写A类的print方法 System.out.println("FLAG=" + FLAG); System.out.println("姓名=" + super.getName()); } } public class AbstractDemo02 { public static void main(String args[]) { B b = new B(); // 初始化B类 b.print(); // 调用B类的orint()方法 } }
结果:
FLAG=CHINA
姓名=张三
注意:抽象方法不要使用private声明
使用abstract关键字修饰抽象方法时不能用private修饰,因为抽象方法必须被子类覆写,而如果使用了private声明,则子类是无法覆写的。
在抽象类中允许使用构造方法,因为抽象类依然使用的是类的继承关系,而且抽象类中也存在哥哥属性,所以子类在实例化之前必须先对父类进行实例化。
例子:在抽象类中定义构造方法
posted on 2011-12-05 20:02 wangbokun 阅读(1320) 评论(0) 编辑 收藏 举报