Java中的抽象类

来源:互联网 发布:淘宝网怎么举报卖家 编辑:程序博客网 时间:2024/05/24 02:47

1.  抽象类:包含一个抽象方法的类。

抽象方法:只声明而未实现的方法称为抽象方法,抽象方法必须使用abstract关键字声明。

抽象类的定义格式:

abstract  class 抽象类名称{

        属性;

        访问权限  返回值类型  方法名称(参数) {//普通方法

       [return 返回值 ] ;

}

访问权限  abstract  返回值类型  方法名称(参数);//抽象方法

//在抽象方法中是没有方法体的

}


2. 抽象类的定义和使用规则

(1) 包含一个抽象方法的类必须是抽象类;

abstract class A{//定义了一个抽象类

public static final String FLAG = "CHIAN";//全局常量

private String name = "逆水百川";//定义一个普通的属性

public void setName(String name){

this.name = name;

}

public String getName(){

return this.name;

}

public abstract void print();//定义抽象方法

}

从定义上看,抽象类就是比普通类多一个抽象方法!


(2)抽象类和抽象方法都要使用abstract关键字声明;

public class Abstract {

public static void main(String[] args) {

A a = new A();

}

}
abstract class A{//定义了一个抽象类

public static final String FLAG = "CHIAN";//全局常量

private String name = "逆水百川";//定义一个普通的属性

public void setName(String name){

this.name = name;

}

public String getName(){

return this.name;

}

public abstract void print();//抽象方法

}

抽象类的定义虽然跟普通类非常相似,但是却不能直接实例化。因为他不满足第(4)点!


(3)抽象方法只需要声明而不需要实现,抽象类中不一定有抽象方法,但是有抽象方法的类一定为抽象类!

public abstract void print();//抽象方法


(4)抽象类必须被子类继承,子类(如果不是抽象类)必须覆写抽象类中的全部抽象方法;


(5) 抽象类能不能使用final关键字声明?

不能,因为final关键字声明的类不能有子类

而抽象类是必须有子类的。


(6)抽象类中是允许存在构造方法的,因为抽象类依然使用的是类的继承关系,而且抽象类中也存在各个属性,所以子类在实例化之前肯定是先要对父类进行实例化。

举例:

public class Abstract2 {

public static void main(String[] args) {

N n = new N();

}

}

abstract class X{

public X(){

System.out.println("父类为抽象类,父类中的构造方法!!");

}

}

class N extends X{

public N(){

System.out.println("子类中的构造方法!");

}

}

运行结果:

父类为抽象类,父类中的构造方法!!
子类中的构造方法!


7. 抽象类不允许实例话对象。

举例:

public class Abstract2 {

public static void main(String[] args) {

N n = new N();

}

}

abstract class X{

public X(){

System.out.println("父类为抽象类,父类中的构造方法!!");

}

}

abstract class N extends X{

public N(){

System.out.println("子类中的构造方法!");

}

}

以上代码是错误的,因为抽象类不能实例化!!


8. 抽象类使用的时候一定要有子类继承,子类仍然是使用extends关键字继承一个抽象类,同样也是单继承的关系,一个子类不能同时继承多个抽象类。

抽象类不能使用final关键字声明。抽象类允许有构造方法,并且完全符合子类对象的实例化过程。




0 0
原创粉丝点击