-
2019-10-11 20:00:48
1、用于隐藏
对类型进行隐藏,我们可以构造出一个固定的一组行为的抽象描述,一个行为可以有任意个可能的具体实现方式。这个抽象的描述就是抽象类。
2、用于拓展对象的行为功能
这一组任意个可能的具体实现表现为所有可能的子类,模块可以操作一个抽象类,由于模块依赖于一个固定的抽象类,那么他是不允许修改的。同时通过这个抽象类进行派生,拓展此模块的行为功能。更多相关内容 -
java中抽象类的作用是什么?抽象类作用的例子
2021-03-01 08:02:24你知道java当中抽象类的作用是什么吗?有什么作用?下面和小编一起来详细的了解一下具体的作用,以及看看抽象类作用的例子吧!一、java抽象类的作用java抽象类的作用具体的可以分成以下的三点:1、抽象类通常都是用来...你知道java当中抽象类的作用是什么吗?有什么作用?下面和小编一起来详细的了解一下具体的作用,以及看看抽象类作用的例子吧!
一、java抽象类的作用
java抽象类的作用具体的可以分成以下的三点:
1、抽象类通常都是用来表征对问题领域进行分析、设计中得出的抽象概念,是对大多数看上去不同,可是本质上却是相同的具体概念的抽象
2、在面向对象方法当中,抽象类主要是用来进行类型隐藏
构造出一个固定的一组行为的抽象描述,可是这组行为却可以有任意个可能的具体实现方式,这个抽象描述就是我们所说的抽象类
这一组任意个可能的具体实现就表现为所有可能的派生类
模块能够操作一个抽象体
因为模块依赖于一个固定的抽象体,所以它可以是不允许修改的
3、通过从这个抽象体派生,也能够扩展这个模块的行为功能
为了可以实现面向对象设计的一个最核心的原则,也就是OCP,抽象类可以说是这当中一个很关键的东西
二、抽象类作用例子//抽象类的作用;模板作用(本例中:
//抽象的父类中,父类的普通方法依赖于一个抽象方法,而抽象方法则推迟到子类中
//去实现)
abstract class SpeedMeter
{
private double turnRate;
public SpeedMeter()
{}
public abstract double getRadius();
public void setTurnRate(double turnRate)
{
this.turnRate = turnRate;
}
//定义计算速度的方法
public double getSpeed()
{
//速度等于车轮半径*2*PI*转速
return java.lang.Math.PI * 2 * getRadius() * turnRate;
}
}
public class CarSpeedMeter extends SpeedMeter
{
public double getRadius()
{
return 0.28;
}
public static void main(String[] args)
{
CarSpeedMeter csm = new CarSpeedMeter();
csm.setTurnRate(15);
System.out.println(csm.getSpeed());
}
}
以上就是对于java中抽象类的作用以及例子的介绍,更多java抽象类常见问题,请继续关注本站来进行了解吧。
推荐阅读:
-
今天讲讲java中的抽象类到底有什么作用?
2022-04-04 13:51:56java中的抽象类到底有什么作用之前听别人说java的抽象类完全就是鸡肋啊, 一点用都没有?
我要规范代码,直接写接口然后用一个类实现这个接口不就好了,抽象类在实际的开发中到底有没有什么独特的作用?
我以前也纠结过这个问题, 今天我就把我理解的为什么java要有抽象类这个东西;
这里从抽象类的作用和抽象类与普通类以及接口之间的区别来解释.
一: 抽象类的作用
如果你看JDK的源码,就会发现,大部分情况下,你用到的方法,他的父类都是一个抽象类,而不是一个直接的接口。原因主要有两个,接口确实是用来定义规范的,同一个接口下,可能有大量不同的实现,举个例子,List这个接口
boolean add(E e); boolean remove(Object o); boolean addAll(Collection<? extends E> c); ......
但是你去看ArrayList,第一个继承的是AbstractList(抽象类),然后你去看LinkedList,第一个继承是AbstractSequentialList(抽象类),而AbstractSequentialList也是继承自AbstractList,你肯定知道ArrayList和LinkedList的区别咯。为什么这么做呢,因为有很多方法是可以复用的,比如
public int indexOf(Object o); public int lastIndexOf(Object o); ......
如果你纯粹用接口的话,你需要写很多重复的代码,一旦修改,你就麻烦了。抽象类的目的在于,你可以更细致化的表明哪些是不同的,哪些是相同的。所以这就是接口和抽象类的简单区别。如果还不理解,你可以看看collection容器类的源码,就会发现了。(抽象类可以默认实现某些方法, 就不需要对一些方法重复实现相同的功能)
二: 抽象类与一般类的区别
抽象类与一般类的区别在于抽象方法。
它的理念是对某个操作下一个定义,但交给子类去实现。
你可能会说,一般类也可以定义一个空方法,然后交给子类实现啊,但这么做因为没有在语法上强迫子类一定要实现这个方法,所以如果子类忘了去实现的话,软件出错的几率会很高。
三: 抽象类与接口的区别
当然,有时候 Java 接口不支持缺省方法,但有了缺省方法的接口,仍然不能代替抽象类,因为没有成员。
接口之所以不能有成员,是因为它只是对象行为的抽象。当你需要定义一个类型,既包含行为抽象,又包含成员来供子类使用时,显然只有抽象类可以满足了。
-
Java中的抽象类可以有构造函数吗?/抽象类中的构造方法作用是什么?
2021-03-21 16:16:24既然抽象类并不能实例化,那抽象类中的构造函数存在的意义是什么?抽象类必须被子类继承来实现。 子类在调用父类时 无论自己有没有构造方法都会先去执行父类无参的函数。哪怕父类是抽象类。虽然抽象类不能被实例化,...答案是肯定的。
在抽象类中定义构造函数,在语法上并不会报错,那么说明构造函数是可以存在的。
既然抽象类并不能实例化,那抽象类中的构造函数存在的意义是什么?
抽象类必须被子类继承来实现。
子类在调用父类时 无论自己有没有构造方法都会先去执行父类无参的函数。哪怕父类是抽象类。虽然抽象类不能被实例化,但是可以在构造方法中初始化一些参数;也可以在子类中调用父类的构造方法。
阅读如下代码:
父类:public abstract class Demo1 { String name; String sex; public Demo1() { System.out.println("执行父类的无参构造函数"); } public Demo1(String name,String sex){ this.name = name; this.sex = sex; System.out.println("执行父类的有参构造函数"); } public void print() { System.out.println("name"+this.name+",sex"+this.sex); } }
子类:
public class Demo2 extends Demo1 { public Demo2(){ System.out.println("执行子类的构造函数"); } public Demo2(String name, String sex) { super(name, sex); System.out.println("执行子类的有参构造函数"); } }
测试类:
public class Test { public static void main(String[] args) { Demo2 demo2 = new Demo2(); Demo2 dm2 = new Demo2("张三","男"); dm2.print(); } }
输出的结果为:
-
java:什么是抽象类,以及抽象类的作用和用法(abstract)
2019-03-06 11:19:43抽象类自身不能创建对象,但是它的子类可以创建对象。 抽象它的子键字是abstract 在父类中定义的抽象方法,在子类中必须实现(即方法重写),否则子类还是抽象类 抽象方法没有方法体。 抽象方法必须定义在抽象类... -
Java中抽象类的作用
2020-08-15 18:10:18通过简单的例子对于java中抽象类的作用进行概述 -
抽象类及抽象方法作用
2018-10-12 23:45:55举例:父类定义了一个排序方法,而具体的实现由子类来实现,可以是冒泡排序,也可以是希尔排序等等,父类的排序方法没有必要写出具体实现,只要声明一下就行 ...抽象类及抽象方法是一种约束,一种规范... -
Java基础教程,第十一讲,抽象类的作用是什么?如何理解和使用
2019-02-20 09:12:09上一节课我们学习了Java中的继承语法,以及如何继承中的方法重写和super()关键字,今天我们将学习一下如何阻止继承以及抽象类。 课程内容 阻止继承:final类和方法 有些时候我们希望阻止某个类被继承,不允许扩展的... -
JAVA中抽象方法的作用以及用法
2019-09-14 16:15:19public abstract class Animal { //含有抽象方法的类必须为抽象类 /* * 抽象方法 * 第一:没有实现(不能被实例化,也就是不能被new,只能被继承) * 第二:子类必须实现(给子类提供标准,必须重写) * 抽象类的... -
抽象类概念及其作用
2019-06-03 10:41:26一、什么是抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 抽象类除了不能... -
抽象类的概念和作用
2018-07-08 12:07:46一、抽象类的概念和作用1.抽象的定义 抽象是把多个事物的共性的内容抽取出来,本质就是把我们关注的内容抽取出来。(比如:宝马、奔驰都属于汽车,汽车是抽象出来的概念)2.抽象类 Java中可以定义没有方法体的... -
abstract关键字的作用是什么?
2019-11-14 21:44:55abstract 修饰的类是抽象类,需要被继承 abstract 修饰的方法是抽象方法,需要子类被重写 【Java面试题与答案】整理推荐 基础与语法 集合 网络编程 并发编程 Web 安全 设计模式 框架 算法与数据结构 ... -
抽象类的作用
2018-09-25 22:23:56当多个类中出现相同功能,但是功能主体不同,这时可以进行向上抽取。这时,只抽取功能定义,而不...4、抽象类中的抽象方法要被使用,必须由子类复写所有的抽象方法后,建立子类对象调用。 如果子类只覆盖了部分抽象... -
什么是抽象类 抽象类有什么好处 为什么要用抽象类
2019-10-24 20:55:31抽象类: 被abstract修饰的类 * 抽象方法: 被abstract修饰的方法 * 可以没有方法体 * 必须在抽象类中 * * 注意: * 1.抽象类不能被实例化|不能创建对象 * 2.抽象方法要存在与抽象类中,抽象方法必须被重写 * 3.抽象类... -
什么是纯虚函数?什么是抽象类?
2020-04-11 17:38:13抽象类: 在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象。抽象类是不完整的,它只能用作基类。 含有纯虚函数的类是抽象类,不能生成对象,只能派生。他派生的类的纯虚函数没有被改写,那么,它的派生类还是个... -
3.抽象类:什么是抽象类???抽象类的特点有哪些???
2020-06-16 16:33:091.什么是抽象类? 被abstract修饰的类,称为抽象类 定义方式: public abstract class 类名{ } 抽象类不能被实例化,即不能使用new创建一个对象,只能被继承 被abstract修饰的方法,称为抽象方法 定义方式: public ... -
Java 抽象类中构造方法的作用?如何理解?
2021-02-12 15:25:38java抽象类的构造方法和普通类的构造方法一样都是用来初始化类只是抽象类的构造方法不能直接调用 因为抽象类不能实现实例但是一旦一个普通类继承了抽象类 便也可以在构造函数中调用其抽象类的构造函数也可以使用其... -
什么是抽象类?什么是抽象方法?
2019-03-06 21:09:42抽象类:抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类,抽象类有点类似于“模板”的作用,目的是根据其格式来创建和修改新的类,对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再... -
什么是抽象类和抽象方法,以及他们的特点
2018-06-21 20:44:46一、使用abstract修饰符修饰的类被称为抽象类; 抽象类不能实例化对象,只能被继承;二、使用abstract修饰符修饰的方法被称为抽象方法; 抽象方法不能有方法体,子类必须重写抽象类中所有的抽象方法;三、抽象类中... -
抽象接口的作用
2015-11-18 20:00:31抽象接口的目的是为了实现子类的功能高度集中而存在的。 一般情况下,实现类必须全部实现所继承接口的方法,可是有些方法却显得多余,为了避免这样的现象,出现了抽象接口。 比如 :一般用一个过渡的抽象类来... -
er图的作用是什么
2021-01-14 14:39:31扩展资料 组构部分 1、实体 实体是现实中存在的对象,有具体的,也有抽象的;有物理上存在的,也有概念性的;例如,学生、课程,等等。它们的特征是可以互相区别,否则就会被认为是同一对象。 凡是可以互相区别、又... -
java中的抽象函数是什么? 和抽象类是什么关系? 抽象类是什么?又什么作用?
2015-03-09 23:16:52抽象函数 java 2013-07-24 22:51匿名 | 分类...又什么作用? 分享到: 2013-07-26 21:03网友采纳 热心网友 用abstract关键字来修饰一个类时,这个类叫做抽象类。 如:abstract class cl -
Java中抽象类和接口的区别与作用详解
2010-03-23 10:40:27结论:abstract class和Interface是JAVA语言中的两种定义抽象类的方式。Interface将abstract的概念作了更进一步的发挥。你可以想像Interface是“纯粹”的 abstract class,只可以包含抽象方法,也包括一些常量的定义... -
C++的抽象类有什么用?
2020-08-07 11:15:25那么抽象类有什么用呢?比如在父类中定义了吃水果蔬菜,那么具体是吃什么呢?猴子可能喜欢吃香蕉,兔子可能喜欢吃萝卜。这都有一个具体点,就是吃东西,但是具体吃什么父类是不能把这种单独的放到“共有的”这个里面... -
Java面向对象抽象的概念和作用
2018-12-27 11:26:44抽象的定义 抽象是把多个事物的共性的内容抽取出来,本质就是把我们关注的内容抽取出来。(比如:宝马、奔驰都属于汽车,汽车是我们抽象出的概念) 抽象类 java中可以定义没有方法体的方法,该方法由其子类具体的... -
java 抽象类中构造函数的作用
2020-04-17 12:33:42#抽象类 毋庸置疑抽象类中可以定义构造函数,但是这时会有一个疑问,既然抽象类的实例化毫无意义那为何又要定义其自己的构造函数呢? 首先,可以通过其内部的构造函数初始化其内部的变量。 其次,可以通过实现它的... -
Java抽象类的作用和使用
2017-02-12 21:04:16转载自Java抽象类的使用 /* 当多个类中出现相同功能,但是功能主体不同, 这是可以进行向上抽取。这时,只抽取功能定义,而不抽取功能主体。 抽象:看不懂。 抽象类的特点: 1,抽象方法一定在抽象类中。 2,... -
C# abstract抽象类的定义,作用(使用场景)
2018-09-03 11:34:27关于C#中抽象类的一些感想 写代码已经有很长一段时间, 但感觉成长很少,基本是为了功能开发而开发,我相信80%的程序员...什么是抽象类 抽象类的应用场景 实例代码 1.什么是抽象类 我先来个百度百科的词条... -
接口,抽象方法的作用--随笔
2018-09-27 16:36:41然而使用接口的第二个原因确实与使用抽象基类相同:防止客户端程序员创建该类的对象,并确保这仅仅是建立一个接口。 那么就带来一个问题,我们应该使用接口还是抽象类呢? 如果要创建不带任何方法定义和...