java里抽象类到底有什么用?

既然抽象类里面的抽象方法都要被子类重写,那继承抽象类还有什么意义?

第1个回答  2013-05-26
比如说人和狗都属于动物,这里“动物”是抽象类,“人”和“狗”是“动物”的实体子类,动物都会“走路”,“走路”这个方法在“动物”类中没有具体实现(抽象方法),因为不同的动物表现出来的“走路”方法是不同的,比如这个例子中,“人”是二条腿走路,“狗”是四条腿走路,所以这种具体差异就需要在子类中重写,否则“人”和“狗”就没区别了。
建议去系统的阅读“java的多态性”,这些是基本概念。
第2个回答  2013-05-26
打个比方吧,我说电脑,电脑这就是个抽象名词,电脑都能上网,能存东西。这时电脑就是抽象类了,而笔记本,台式就继承它的基本功能,但它们实现功能方式不一样,那就是类的方法重写。抽象类意义:便于程序的扩展和维护,也就是说原本只有一条路去某一个地方,现在有了他你可以有N种方法去某一个地方。
第3个回答  推荐于2017-09-23
你明白多态就明白这个问题了,给你举个例子吧:比如有个抽象类叫动物,他有“叫”的动作,继承他的类都是普通类,有猫、狗...各种动物,他们实现叫的方法都不同。现在有个需求:就是实现各种动物“叫”的动作,为了动态实现,就需要把动物做为形参传过去,依照多态的特性“任何父类出现的地方,都可以替换成子类”,我们就可以将真正实现了“叫”这个方法的实现类传过去而执行实现类里的方法了,以下是实例代码:
//动物类
public abstract class Animal(){
public void shout();
}
//实现类:狗
public class Dog extends Animal(){
public void shout(){
System.out.println("汪");
}
}
//实现类:猫
public class Cat extends Animal(){
public void shout(){
System.out.println("瞄");
}
}
//执行类
public class Opration(){
//定一个以Animal为参数的方法
public void ExecuteTest(Animal animal){
//只调用“叫”的方法
animal.shout();
}
}
//测试类
public class Test(){
//实现main()
public static void main(String[] args) {
//实例化
Dog dog=new Dog();
Cat cat=new Cat();
Opration op=new Opration();

//接下来要用多态了

//这里是狗“叫”的放法
op.ExecuteTest(dog);
//这里是猫“叫”的方法
op.ExecuteTest(cat);
}
}
希望能对你有帮助。
我这没用任何工具,要是有错误,请见谅。本回答被提问者采纳

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

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

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

java中抽象类和接口的区别?
抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板。 接口是抽象方法的集合。如果一个类实现了某个接口,那么它就继承了这个接口的抽象方法。这就像契约模式,如果实现了这个接口,那么就必须确保使用这些方法。接口只是一种形式,接口自身不能做任何事情。

java抽象是什么意思?
一个类只能继承一个抽象类,但可以实现多个接口。抽象类用于表示一些具有类似特征的对象或者行为,接口用于定义一些规范或者契约和实现的约束。抽象类强调从一般到具体,接口强调从具体到一般。在软件工程领域中,设计模式的核心思想就是抽象和封装,通过将系统中类和对象之间的交互关系抽象出来,并将其封装在...

在java中,什么是抽象类和抽象方法,创建有何作用
抽象类不能用final来修饰,即一个类不能既是最终类又是抽象类。 abstract不能与private、static、final、native并列修饰同一个方法。 程序举例:abstract class Animal \/\/定义抽象类 { String str; Animal(String s) \/\/定义抽象类的一般方法 { str=s; } abstract void eat...

抽象类的作用是什么?
抽象类还常被用来抽象问题领域的概念,它捕捉的是那些在表面上看起来不同,但本质上共享特征的概念,是设计中对复杂性的抽象和概括。在编程实践中,如C++和Java中,抽象类通常通过声明纯虚函数或抽象方法来标识,这些类不能直接实例化,而是作为基类,用于派生其他具体类。抽象类的不完整特性使其成为一个...

Java干货 | 什么是抽象类?怎么定义
Java中,抽象类是一种特殊类,其核心特征是不能被实例化,主要用于被其他类继承并实现其抽象方法。抽象方法没有实现,只有定义,必须在子类中提供具体实现。抽象类可以包含非抽象方法和属性,但至少需要有一个抽象方法。抽象类和抽象方法的定义均使用Java的关键字abstract。抽象类有以下特性:不能直接创建...

Java中的接口和抽象类有什么区别?
Java中的接口和抽象类都是用来完成代码的抽象和重用的机制,但它们有一些区别。一个接口是一个特殊的类,仅包含公共的抽象方法,常量和默认方法的集合。它提供了一种将实现与接口分离的机制,允许编写代码,不需要实现任何特定的类,只需要实现接口中声明的方法即可。接口还可以被用作多个类之间共享行为的...

抽象类里必须要有抽象方法
抽象类通常被用于作为一个基类或模板,为子类提供统一的接口。在实际开发中,抽象类还可以用来实现代码重用和简化代码结构的效果。另外,抽象类还可以避免重复的代码实现,减少系统的维护成本。二、抽象方法的作用抽象方法是一个方法的声明,但是没有实现,它是抽象类定义的一部分。抽象方法是为了提供一个...

相似回答