-
2020-08-05 09:36:44
抽象类:抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类,抽象类有点类似于“模板”的作用,目的是根据其格式来创建和修改新的类,对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类来创建对象,当一个类被声明为抽象类时,要在这个类前面加上修饰符abstract,在抽象类中的成员方法可以包括一般方法和抽象方法
抽象方法:抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型,方法名称和所需要的参数,没有方法体,也就是说抽象方法只需要声明而不需要事先,当一个方法为抽象方法时,意味着这个方法必须被子类的方法所重写,否则其子类的该方法仍然是abstract的,而这个子类也必须是抽象的,即声明为abstract。
原文链接:https://blog.csdn.net/dulijie/article/details/88256415
构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。
更多相关内容 -
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-08 17:06:59一、抽象类的定义 二、抽象类的特征 三、抽象类存在的意义 一、抽象类的定义 什么是抽象类? 父类知道子类一定要完成某个功能,但是每个子类完成的情况是不一样的。 子类以后也只会用自己重写的功能,那么父类的...🎉🎉Java入门级教程🎉🎉
🌹🌹适合刚学习Java的小白选手🌹🌹
😃😃快来学习一下吧~~~ 😃😃
😊😊如果看完这篇感觉还不满足,可以继续看下面👇这篇文章😊😊
👉👉👉👉👉关于接口的详细知识
目录
一、抽象类的定义
什么是抽象类?
父类知道子类一定要完成某个功能,但是每个子类完成的情况是不一样的。
子类以后也只会用自己重写的功能,那么父类的功能就可以定义为抽象方法,子类重写调用子类自己的就可以了。这个父类就成为抽象类。抽象方法:没有方法体,只有方法签名,必须用abstract修饰。
拥有抽象方法的类必须定义成抽象类。抽象类:
必须用abstract修饰。抽象类的作用:
为了被子类继承。一个类继承了抽象类,必须重写完抽象类的所有抽象方法,否则该类只能定义为抽象类。
代码演示:
abstract class Employees{ public abstract void work(); } class Manager extends Employees{ @Override public void work() { System.out.println("班主任要管理学生~~"); } } class Teacher extends Employees{ @Override public void work() { System.out.println("老师要教育学生~~"); } } //测试类: public class AbstractDemo { public static void main(String[] args) { Teacher teacher = new Teacher(); teacher.work(); Manager manager = new Manager(); manager.work(); } }
二、抽象类的特征
抽象类的特征:有得有失。
有得:抽象类得到了拥有抽象方法的能力。
有失:抽象类失去了创建对象的能力。抽象类是否有构造器?抽象类是否可以创建对象?
一定有构造器,而且必须有。
提供给子类创建对象调用父类构造器使用。不能创建。
不能创建对象的原因:
反证法:
Anmal a = new Animal();
a.run();
抽象方法不能执行,因为它没有方法体。注意:
抽象类本身意味着抽象,抽象就是不能具体化。三、抽象类存在的意义:
1、抽象类就是为了被子类继承。(就是为了派生子类),否则毫无意义。
2、抽象类体现的是模板思想,部分实现,部分抽象。可以设计模板设计模式。
-----------------------------------------------------------------
抽象类设计模板设计模式什么是设计模式?
设计模式是前人或者技术大牛或者软件行业在实战中发现的优秀软件设计架构和思想。
后来者可以直接用这些架构或者思想就可以设计出优秀、高效率、可扩展性好和可维护性好的软件。模板设计模式就是一种经典的设计模式思想。
模板设计模式的作用:优化代码架构,提高代码的复用性。
---------------------------------------------------------------------------------------------
案例:
作文模板:
* 《我的爸爸》
* 第一段固定:请介绍一下你的爸爸,说说你的爸爸有多好,有多牛。
* 正文部分:抽象出来。
* 结尾部分:我爸爸真棒,有这样的爸爸爽爆了。
用抽象类设计模板演示://1、设计一个模板类 abstract class Template{ private String title = "《我的爸爸》"; private String one = "请介绍一下你的爸爸,说说你的爸爸有多好,有多牛。"; private String last = "我爸爸真棒,有这样的爸爸爽爆了。"; //2、写作文的功能 public void write() { System.out.println(title); System.out.println(one); //3、正文部分,这一段模板是不能确定的,需要自己写。 System.out.println(writeMain()); System.out.println(last); } public abstract String writeMain(); } class Student extends Template{ @Override public String writeMain() { return "正文部分:我的爸爸很帅,很牛。"; } } class Teacher1 extends Template{ @Override public String writeMain() { return "正文部分:老师的爸爸也很帅。"; } } //测试类: public class AbstractDemo2 { public static void main(String[] args) { Student s = new Student(); s.write(); Teacher1 t = new Teacher1(); t.write(); } }
小结:
1、抽象类不能创建对象,只能创建其非抽象子类的对象。
2、抽象类一定有构造器,而且必须有,提供给子类创建对象调用父类构造器使用。
3、抽象类中不一定包含抽象方法,但拥有抽象方法的类必须定义成抽象类。
4、一个类继承了抽象类,必须重写完抽象类的所有抽象方法,否则该类只能定义为抽象类。
5、抽象类体现的是模板思想,部分实现,部分抽象。抽象类不确定如何实现的定义成抽象方法,交给具体的子类去实现。 -
php中抽象类的作用是什么?
2021-04-22 18:21:24PHP抽象类如何定义,PHP抽象类的应用规则要充分发挥抽象类的特点,就必须牢记以下规则1.某个类只要包含至少一个抽象方法就必须声明为抽象类.2.声明为抽象的方法,在实现的时候必须包含相同的或者更低的访问级别.例如,...PHP抽象类如何定义,PHP抽象类的应用规则
要充分发挥抽象类的特点,就必须牢记以下规则1.某个类只要包含至少一个抽象方法就必须声明为抽象类.2.声明为抽象的方法,在实现的时候必须包含相同的或者更低的访问级别.例如,如果某个方法在抽象类中的访问级别是受保护的,在继承类中它就必须是受
php 抽象类使用时应注意哪些
php抽象类使用要点与注意事项如下:
用abstract 来修饰一个方法,那么该方法就是抽象方法;
php中抽象类的作用是什么?
刚看完php抽象类,抽象类是为了让一些方法在继承的类中具体去实现,抽象类抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的。
php的抽象类和普通类的区别是什么
如果像例子中从mysql 移植到 sqlserver ,那么逻辑层所有的数据库操作类提供一个规范,继承该抽象类的所有的类, 都要实现抽象类中定义的方法。
php抽象类和普通类有什么不同
对接口的使用是通过关键字implements。对抽象类的使用是通过关键字extends。当然接口也可以通过关键字extends继承。
接口中不可以声明成员变量(包括类静态变量),但是可以声明类常量。抽象类中可以声明各种类型成员变量。
php的抽象类和接口的区别
接口中不可以声明成员变量(包括类静态变量),但是可以声明类常量。抽象类中可以声明各种类型成员变量,实现数据的封装。 接口没有构造函数,抽象类可以有构造函数。 接口中的方法默认都是public类型的,而抽象类中的方法可以使用private,prote
php 什么情况用接口和抽象类
php 用接口和抽象类的情况: 接口是一种协定,抽象类则相当于类模板。 使用抽象类,而不要使用接口来分离协定与实现。 如果需要提供多态层次结构的值类型,使用接口。 如果一个类型必须实现多个协定,或者协定适用于多种类型,使用接口。
-
Java中的抽象类和接口
2022-04-08 15:17:42各位铁汁们大家好呀!今天让我们继续学习java,看看java中的抽象类和接口到底是什么? 里面也会讲到多态呀,一起来看看吧 -
Java中的抽象类详解,它存在的意义在哪里?
2019-06-03 14:54:23学习抽象类前先理解下面这段话: 问你个问题,你知道什么是“东西”吗?什么是“物体”吗? “麻烦你,小王。帮我把那个东西拿过来好吗” 在生活中,你肯定用过这个词--东西。 小王:“你要让我帮你拿那个... -
Java中的抽象类可以有构造函数吗?/抽象类中的构造方法作用是什么?
2021-03-21 16:16:24既然抽象类并不能实例化,那抽象类中的构造函数存在的意义是什么?抽象类必须被子类继承来实现。 子类在调用父类时 无论自己有没有构造方法都会先去执行父类无参的函数。哪怕父类是抽象类。虽然抽象类不能被实例化,... -
抽象类的作用是什么?
2019-10-11 20:00:48这一组任意个可能的具体实现表现为所有可能的子类,模块可以操作一个抽象类,由于模块依赖于一个固定的抽象类,那么他是不允许修改的。同时通过这个抽象类进行派生,拓展此模块的行为功能。 ... -
深入理解Java抽象类
2020-08-24 20:51:30主要介绍了Java抽象类的相关资料,帮助大家更好的理解和学习Java,感兴趣的朋友可以了解下 -
python抽象类有什么用
2021-02-09 11:51:25抽象类,就像是类和接口的混合体,具有接口的特性,在python中利用第三方abc模块,实现抽象类。抽象方法不存在重写的问题,却有实现的问题(推荐学习:Python视频教程)如果说类是从一堆对象中抽取相同的内容而来的,... -
简述抽象类和接口、抽象类区别的区别
2020-11-11 17:32:58抽象类和普通类和接口什么是抽象类什么是接口抽象类和接口区别 ...抽象类不能被实例化,抽象方法必须被重写,定义它们是干嘛? 抽象类是用来被继承的,如果没有类去继承它,也就失去了意义;抽象方法生来就 -
java:什么是抽象类,以及抽象类的作用和用法(abstract)
2019-03-06 11:19:43抽象类自身不能创建对象,但是它的子类可以创建对象。 抽象它的子键字是abstract 在父类中定义的抽象方法,在子类中必须实现(即方法重写),否则子类还是抽象类 抽象方法没有方法体。 抽象方法必须定义在抽象类... -
Java 抽象类中构造方法的作用?如何理解?
2021-02-12 15:25:38java抽象类的构造方法和普通类的构造方法一样都是用来初始化类只是抽象类的构造方法不能直接调用 因为抽象类不能实现实例但是一旦一个普通类继承了抽象类 便也可以在构造函数中调用其抽象类的构造函数也可以使用其... -
Java中抽象类和接口中有构造方法吗?
2021-03-08 05:52:39以举例的方式说到如何区分抽象类和接口,这里我们从Java语法谈起,使我们更加了解这两者的内在区别。它们的语法区别:1)接口不能有构造方法,抽象类可以有。2)接口不能有方法体,抽象类可以有。3)接口不能有静态方法... -
Java 8 中的接口和抽象类到底有啥区别?
2021-03-22 15:56:45》,帮助许多人解开了疑惑,还有读者留言说两者还有啥区别,故引发了此篇: 在我们面试时也会经常遇到面试官问抽象类和接口的区别是什么,大部人肯定会说:接口中的所有方法都是抽象的,抽象类中的方法除了抽象方法... -
java抽象类有构造方法吗?
2020-05-27 21:50:09定义抽象类 格式 : abstract class 类名{} 举例 : 抽象类中的 方法 抽象方法 abstract void eat();...抽象类中,有构造方法,但是有不能new,那么构造方法干嘛的呢? 给子类用的!!! 抽象类,一样可以使用多态来创建子 -
Java学习笔记 继承与抽象类:继承中的protected和super
2020-11-19 21:24:50一般修饰:类成员变量和成员方法 protected修饰的成员可以被三种类所引用 1.该类自身 2.与他在同一个包中的其他类 3.在其他包中的该类的子类 包:包将各种类组织在一起,使得重新功能清楚,结构分明(类似文件夹组织... -
Java中的抽象类到底抽在哪?
2022-04-11 19:53:37抽象类到底是用来干嘛的呢?它和普通类的区别又是如何呢? -
一文彻底弄懂如何选择抽象类还是接口
2020-10-11 23:55:09抽象类、接口对于不论是Java、C++等程序猿都不陌生,但你知道如何正确地使用抽象类和接口吗?你是否还在模棱两可、只是简单记忆了两者的区别,遇到实际情况就不知道如何选择? 今天,我就来带你彻底弄清楚这俩的区别... -
Java学习-抽象类(abstract)和接口(interface)
2020-08-17 12:39:381、什么是抽象类 随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更为一般,更通用。类的设计应该保证父类和子类能够共享特征,有时将一个父类设计得非常抽象,以至于它没有具体的实例,这样的类... -
说一下Java中抽象类和接口存在的意义与价值
2018-10-15 16:29:41首先简单的介绍一下抽象类: 定义是很简单的,我们这里不写官方的语言,我自己看着都烦,我们就用白话介绍,抽象类本质是一个类,没问题,那么类里面一般都是有方法的,方法包括方法名和方法体,这是常识对不对,... -
既然有接口为什么还需要抽象类?
2018-09-21 11:51:36抽象类与接口 抽象类与接口紧密相关。然接口又比抽象类更抽象,这主要体现在它们的差别上: 1)类可以实现无限个接口,但仅能从一个抽象(或任何其他类型)类继承,从抽象类派生的类仍可实现接口,从而得出接口是... -
java接口和抽象类的区别,什么时候该用接口什么时候该用抽象类
2017-12-21 12:56:26接口大家比较熟悉一点,因为现在的MVC架构业务层规范就是先写接口再写实现类,那大家有没有想过,用抽象类代替这些接口,是否可行呢?从语法上当然是可行的,但是不会这样做,为什么呢?大材小用,理念不同..接着往... -
Java中抽象类与接口的详细说明
2019-07-13 20:44:39首先简单的介绍一下抽象类: 定义是很简单的,我们这里不写官方的语言,我自己看着都烦,我们就用白话介绍,抽象类本质是一个类,没问题,那么类里面一般都是有方法的,方法包括方法名和方法体,这是常识对不对,... -
SpringBoot是什么?干嘛用的?新手入门看这一篇就够了
2021-02-11 10:28:05一、SpringBoot是干哈的介绍:springboot是由Pivotal团队提供的全新框架。spring的出现是为了解决企业级开发应用的复杂性,spring的通过注册bean的方式来管理类,但是随着业务的增加,使用xml配置bean的方式也显得... -
(转)抽象类中的非抽象方法的作用
2016-02-15 12:03:36注:原博文是关于C#的,java...举个例子吧:有个抽象类:人类其中有个非抽象成员方法:吃饭(因为假定人类吃饭的方法都是咀嚼)而抽象方法则有:获取语言,获取性别等等。当子类需要继承“人类”这一抽象类时,它可 -
Java中的抽象方法是什么,怎么用?
2021-03-27 14:36:23抽象方法… 听着就很抽象的样子 脑中不禁浮现出了各种抽象画的图像 缩在被窝里打起了退堂鼓 但是! Java中的抽象没那么难 抽象方法是个啥? 通俗来说 就是不知道该咋做的方法 先别晕 我给你举个小栗子 我们创建一个...