java中抽象类的作用是什么?

请给出具体的应用例子!谢谢!

通过继承它实现多态,后期绑定,可以为将来要实现的东西做好接口,实现重用性,
例如:
abstract class A {
public abstract void doSomething();
}

class B extends A {
public void doSomething() {
System.out.println("do B");
}
}

class C extends A {
public void doSomething() {
System.out.println("do C");
}
}

public class Test {
public static void main(Stringp[] args) {
A a1 = new B();
A a2 = new C();
B b = new B();
C c = new C();
doSomething(a1); //这里
doSomething(a2); //这里
doSomething(b); //这里,如果下面的方法不是用抽象类作参数,比如用C c做参数,这里会有什么问题?
doSomething(c); //这里
}

public static void doSomething(A a) {//这里,用抽象类,为什么,自己思考
a.doSomething();
}
}

//这个例子只是抽象类的最基本的设计模式,和接口差不多追问

谢谢!

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-11

    在面向对象方法中,抽象类主要用来进行类型隐藏。构造出一个固定的一组行为的抽象描述,但是这组行为却能够有任意个可能的具体实现方式。这个抽象描述就是抽象类,而这一组任意个可能的具体实现则表现为所有可能的派生类。模块可以操作一个抽象体。由于模块依赖于一个固定的抽象体,因此它可以是不允许修改的;

    通过从这个抽象体派生,也可扩展此模块的行为功能。为了能够实现面向对象设计的一个最核心的原则OCP(Open-Closed Principle),抽象类是其中的关键所在。

    抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。

第2个回答  2016-11-26
抽象类比较像普通类和接口的结合,因为抽象类可以像普通类那样在类中实现方法,也可以像接口一样,只声明,不实现。下面的一个抽象类的实例:
public abstract class TravelTool{ //抽象类需在类的关键字class前加上关键字abstract。
//抽象方法没有方法体,需在方法返回值前加上关键字abstract,并以分号结尾。
public abstract String drive(int i);
}
抽象类可以有抽象方法,如果它的子类是抽象类,那么子类不必实现抽象类的抽象方法;如果子类不是抽象类,那么子类必须实现抽象类的抽象方法。需要注意的是,不能实例化抽象类对象。若子类为非抽象类那么子类可以实例化对象。
如果你还是不太明白抽象类。你可以上秒秒学了解下,上面说的比较形象。
第3个回答  2012-05-22
主要就是为了继承。
真正使用的时候,抽象类用的并不是很多,用的最多的是借口,但是换句话说,借口也是一种抽象类。
第4个回答  2011-04-18
子类继承抽象类后必须实现父类中的抽象方法。
如分页 分页父类BasicPage 父类中有个addParameter的方法。如果你建一个***Page的话它继承了BasicPage ,那么他必须加上addParameter的方法,否则报错。

Java知识点 丨 Java抽象类的作用是什么?
在Java编程中,抽象类是一种独特的存在,它扮演着至关重要的角色。首要特性就是,抽象类无法直接被创建对象,只能由其他类通过继承来实现。其核心作用主要体现在以下几个方面:首先,抽象类区别于普通类的关键在于它不能实例化,并且至少包含一个或多个抽象方法,这些方法没有具体实现,留给子类去实现。这...

如何解读java抽象类的作用和意义?
抽象类的另一个重要作用是为具体实现类提供指导。通过继承抽象类,具体实现类需要遵循重写(override)规则,确保实现的逻辑一致性。这不仅促进了代码的统一性,也便于在后期扩展与维护。抽象类中,部分方法已有具体实现,而其他方法则是抽象方法,留待子类继承和扩展。这种设计模式既能提高代码复用性,同时保...

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

在java中,什么是抽象类和抽象方法,创建有何作用
抽象类有点类似“模板”的作用,目的是根据其格式来创建和修改新的类。对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类来创建对象。当一个类被声明为抽象类时,要在这个类前面加上修饰符abstract。 在抽象类中的成员方法可以包括一般方法和抽象方法。抽象方法就是以abstract修...

java中抽象类的存在有什么意义?
java中抽象类更利于代码的维护和重用。抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。具体分析如下:1.因为抽象类不能实例化对象,所以必须要有子类来实现它之后才能使用。这样就可以把一些具有相同属性和方法的组件进行抽象,这样更...

java中抽象类和接口的区别?
抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。 通常在编程语句中用 abstract 修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。 抽象类是不完整的,它只能...

java final类的作用和抽象类的作用?
final类就是最终类,避免被继承、重用 抽象类是用来继承的类,设计的目的就是用来实现或者重写具体的方法从而在合适的情况下使用之

java中为什么要用抽象类和接口
2)抽象类不能用来创建对象;3)如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。在其他方面,抽象类和普通的类并没有区别。二.接口接口,英文称作interface,在软件工程中,接口泛指供别人调用的方法或者函数。从这里,我们可以体会到Java...

java中, 把类定义成抽象类有哪些作用,和接口有什么区别?
1、抽象类里面可以有非抽象方法 但接口里只能有抽象方法 声明方法的存在而不去实现它的类被叫做抽像类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽像类,并让它...

Java中的接口和抽象类有什么区别?
抽象类是用于创建其他类的基类,但它不能被实例化。相反,子类必须扩展抽象类并实现所有的抽象方法才能被实例化。另一个区别是在Java中可以实现多个接口,但是只能继承一个类,这是因为Java不支持多继承。在这种情况下,接口提供了一种解决方法,让类通过实现多个接口来实现多个类型的行为。-- By GPT....

相似回答