在Java中,abstract使用的场合?各有什么作用?

如题所述

别地方复制过来的,不过值得一看。
abstract(抽象)修饰符,可以修饰类和方法

1,abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就是编译时类型,抽象类就像当于一类的半成品,需要子类继承并覆盖其中的抽象方法。

2,abstract修饰方法,会使这个方法变成抽象方法,也就是只有声明(定义)而没有实现,实现部分以";"代替。需要子类继承实现(覆盖)。

注意:有抽象方法的类一定是抽象类。但是抽象类中不一定都是抽象方法,也可以全是具体方法。

abstract修饰符在修饰类时必须放在类名前。

abstract修饰方法就是要求其子类覆盖(实现)这个方法。调用时可以以多态方式调用子类覆盖(实现)后的方法,也就是说抽象方法必须在其子类中实现,除非子类本身也是抽象类。

注意:父类是抽象类,其中有抽象方法,那么子类继承父类,并把父类中的所有抽象方法都实现(覆盖)了,子类才有创建对象的实例的能力,否则子类也必须是抽象类。抽象类中可以有构造方法,是子类在构造子类对象时需要调用的父类(抽象类)的构造方法。
举个简单的例子下面有一个抽象类
abstract class E{
public abstract void show();//public abstract 可以省略
}
然后其它类如果继承它通常为了实现它里面的方法
class F extends E{
void show(){
//写具体实现的代码
}
}
最后再主方法里面定义一个父类引用指向子类对象,就会发生多态现象,比如
E e=new F();
e.show();
实际调用了子类里面的show()方法

参考资料:http://hi.baidu.com/nameljl/blog/item/d33a29b768db6bc436d3ca24.html

温馨提示:内容为网友见解,仅供参考
无其他回答

在Java中,abstract使用的场合?各有什么作用?
abstract(抽象)修饰符,可以修饰类和方法 1,abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就是编译时类型,抽象类就像当于一类的半成品,需要子类继承并覆盖其中的抽象方法。2,abstract修饰方法,会使这个方法变成抽象方法,也就是只有声明(...

java中abstract是什么意思?
在Java中,abstract是一个关键字,用于定义抽象类和抽象方法。抽象类是不能被实例化的类,其中至少有一个抽象方法(即定义时没有具体实现的方法)。抽象方法只是一个声明,没有具体代码实现,必须在子类中实现才能被使用。抽象类和抽象方法主要用于定义一些通用的抽象概念,而不是具体的实现细节,使得代码...

java中abstract的作用
创建抽象类和抽象方法。在Java中,abstract是一个关键字,主要作用于创建抽象类和抽象方法,用于定义一个共同的接口,让子类去实现。

abstract在java中的含义
在Java编程语言中,abstract是一个关键字,用于表示一个类或方法具有抽象性质。一、抽象类与接口的区别 1、默认方法实现 抽象类可以包含具有实际实现的方法,而接口直到Java 8之前都不允许包含默认方法实现。2、构造函数 抽象类可以有构造函数,接口不能有构造函数。3、访问修饰符 抽象类中的方法可以有pub...

在java中,什么时候用抽象类,什么情况下用接口??各自有什么好处,以及两...
接口 1 因为java不支持多重继承,所以有了接口,一个类只能继承一个父类,但可以实现多个接口,接口本身也可以继承多个接口。2 接口里面的成员变量默认都是public static final类型的。必须被显示的初始化。3 接口里面的方法默认都是public abstract类型的。隐式声明。4 接口没有构造方法,不能被实例化...

java中有几种修饰符?
abstract是抽象的意思,用来修饰类和方法,修饰类后,该类为抽象类,不能被实例化,必需进行扩展。修饰方法后,该方法为抽象方法必须被子类重写(override)。4、static修饰符 static用来修饰内部类,方法,字段。修饰内部类说明该内部类属于外部类而不属于外部类的某个实例。修饰字段说明该字段属于类而不...

java中修饰符有哪些
abstract:表示是抽象类 final:表示类不可以被继承 scrictpf:(java关键字) 当对一个类或接口使用 strictfp 关键字时,该类中的所有代码,包括嵌套类型中的初始设定值和代码,都将严格地进行计算。严格约束意味着所有表达式的结果都必须是 IEEE 754 算法对操作数预期的结果,以单精度和双精度格式表示 ...

java abstraction什么意思
abstract 修饰,来表示它是抽象类。抽象类,使用 abstract 修饰。抽象类可以包含自己的变量、抽象方法、具体方法等(也就是说,类是抽象的,但对成员是否抽象则没有要求)。实际上,抽象类是类和接口的混合。抽象类不能创建实例。继承抽象类与继承普通类相同,也使用 extends 关键字。但不同的是,子类...

Java中 什么情况下使用接口?什么情况下使用抽象类?各自的优势是...
首先,abstract class在Java语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。也许,这是Java语言的设计者在考虑Java对于多重继承的支持方面的一种折中考虑吧。 其次,在abstract class的定义中,我们可以赋予方法的默认行为。但是在interface的定义中,方法却不能拥有默认行为,...

如何生动的解释为什么java中要用抽象类?
在Java中,抽象类的使用是为了在设计模式中实现代码的重用和抽象化。抽象类主要是用来将差异性的方法抽象化,由子类进行扩展实现;共同性的方法具体化,由所有子类继承实现。抽象类允许定义共同的属性和行为,然后由不同的子类根据需要进行特定的实现。抽象类的定义中使用了abstract关键字,表明这是一个抽象...

相似回答