JAVA抽象类和抽象方法(abstract)】的更多相关文章

一.抽象(abstract)的使用 当父类的某些方法不确定时,可以用abstract关键字来修饰该方法[抽象方法],用abstract来修饰该类[抽象类]. 我们都知道,父类是将子类所共同拥有的属性和方法进行抽取,这些属性和方法中,有的是已经明确实现了的,有的还无法确定,那么我们就可以将其定义成抽象,在后日子类进行重用,进行具体化.这样,抽象类也就诞生了. 例如,定义了“动物”父类,其中“动物名称”和“动物年龄”属性已经明确了,但是“动物叫”的方法没有明确,此时就可以将“动物叫”定义为抽象方法.…
对于java中的抽象类,抽象方法,接口,实现接口等具体的概念就不在这里详细的说明了,网上书本都有很多解释,主要是我懒,下面通过一个例子来说明其中的精髓要点,能不能练成绝世武功,踏上封王之路,就看自己的的啦(不要误会,我指的只是我自己啦啦) 用接口实现一个简单的计算器 1.利用接口做参数,写个计算器,能完成+-*/运算 (1)定义一个接口Compute含有一个方法int computer(int n,int m); (2)设计四个类分别实现此接口,完成+-*/运算 (3)设计一个类UseCompu…
包含抽象方法的类叫抽象类,如果一个类中包含一个或多个抽象方法,该类必须被限定为抽象的,否则编译器会报错,抽象类不可创建对象,创建抽象类的对象编译器会报错 如果从一个抽象类继承,并想创建该新类的对象,那么必须为基类中的所有抽象方法提供方法定义,如果不这样做(可以选择不做),那么导出类便也是抽象类,且编译器会强制我们用abstract关键字来限定这个类.. 可以创建没有任何抽象方法的抽象类,创建抽象类和抽象方法非常有用,因为我们可以使类的抽象性明确起来,并告诉用户和编译器打算怎么去使用它们,抽象类还…
抽象类和抽象方法之间的关系有抽象方法的类,一定是抽象类:抽象类不一定有抽象方法当子类继承抽象类时,必须要将抽象类中的抽象方法全部实现(或者称为重写),否则子类依然是抽象类因为子类是继承父类全部内容,所以也就相当于子类中也有了抽象方法,通过重写,可以将抽象方法覆盖. 抽象类的特点:必须有abstract关键字修饰,不可以通过new来创建对象,抽象方法不可以写函数体(非抽象方法必须写函数体) 关键字小总结:不想让别的类重写的方法,用final:内容不确定的方法,用abstract(子类中用法不一样)…
首先应该明确一点的是,抽象方法必须定义在抽象类中. 先看一个抽象类的定义: public abstract class Animal { public abstract void eat(); public abstract void sleep(); public void Smile() { System.out.println("每个动物都会微笑,因为最美!"); } } 抽象类作为一个父类,可以定义抽象方法,也可以定义一般方法. 我们在来定义一个子类: public class…
题目:定义Shape类表示一般二维图形.Shape具有抽象方法area和perimeter,分别计算形状的面积和周长.试定义一些二维形状类(如矩形.三角形.圆形等),这些均为Shape类的子类并计算出这些形状的面积和周长,打印输出相关信息. 代码: //形状类public abstract class Shape { public abstract double area(); public abstract double perimeter(); } //矩形类public class Rec…
文章目录 抽象类与抽象方法 abstract关键字的使用 abstract修饰类:抽象类 abstract修饰方法:抽象方法 abstract使用上的注意点: 抽象类的匿名子类 模板方法设计模式 抽象类与抽象方法 abstract关键字的使用 abstract:抽象的 abstract可以用来修饰的结构:类.方法 abstract修饰类:抽象类 此类不能实例化 抽象类中一定有构造器,便于子类实例化时调用(涉及:子类对象实例化的全过程) 开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操…
什么是抽象类 抽象类是相同概念实体的一种抽象,Java中用关键字abstract来定义抽象类和抽象方法. 什么是抽象方法 只有方法的声明,没有方法的具体实现的方法. 抽象类和抽象方法的特点 抽象类和抽象方法必须用abstract关键字来修饰,抽象方法没有方法体,即不能有{}; 抽象类中不一定要有抽象方法,即也可以都是非抽象方法或两者并存,但是拥有抽象方法的类一定要定义为抽象类: 抽象类不能被实例化,但是抽象类依然有构造方法,抽象类的构造方法用于子类访问父类数据的初始化. 抽象类的子类可以是抽象类…
知识点:java中的抽象类和抽象方法 关键字abstract意为抽象的,可以用来修饰类和方法,分别称作抽象类和抽象方法 抽象类一般在多态的场景中使用 一:抽象类(abstract class) 在类的继承中,如果一个个新的子类被定义,子类变得越来越具体,父类变得更加一般和通用,类的设计应该保证父子类能够共享特征,有时将父类设计得非常抽象,使得父类没有具体的实例,这样的类叫做抽象类:一般当我们设计一个类,不需要创建此类的实例时,可以考虑将该类设置成抽象类,让其子类实现这个类的抽象方法 抽象类的特征…
在继承时,会遇到一个问题.如果很多子类都要继承父类的一个方法,但是实现的逻辑都不一样. 这时候父类只提供了方法名,但是没有具体的方法体. 例如,男孩类和女孩类都继承人类这一个父类.人类有爱好这个方法,但是男孩类和女孩类继承这个方法时,方法体不一样.所以人类只提供了爱好这个方法名,并没有具体的方法体.这个方法就是抽象方法. 在java中,抽象方法要用abstract关键词修饰. 示例: abstract class People{ public abstract void hobby(); } c…
同学你这个涉及了两个概念. 一个是抽象方法,一个是方法重载. 先说下概念: 抽象方法就是abstract描述的方法,它本身不含实现,必须由子类实现. 方法重载则是同一个方法名,但是参数类型或者参数个数不同. 理解了这个再看看你的问题. 如果你的子类的"对应的方法"有多个参数,那么,你这个子类的该方法就不是所谓的"对应的方法"了,它是这个方法的重载. 所以,在这种情况下,子类还是必须实现一个和原抽象方法一致的方法. 即是说,"Java抽象类中的抽象方法的参数…
#抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量.成员方法和构造方法的访问方式和普通类一样. 由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用.也是因为这个原因,通常在设计阶段决定要不要设计抽象类. 父类包含了子类集合的常见的方法,但是由于父类本身是抽象的,所以不能使用这些方法. 在Java中抽象…
abstract: * abstract修饰类: 抽象类 * > 此类不能被实例化 * > 抽象类中一定要有构造器, 便于子类对象实例时调用(涉及子类对象实例化过程) * > 开发中,都会提供抽象类的子类,让子类对象实例化.完成相关操作 * * * * abstract修饰方法: 抽象方法 * > 只有方法的声明没有方法体 * > 如果类中有抽象方法 那么这个类必须也是抽象的(包含抽象方法的类一定是抽象类) * > 若子类重写了父类中的所有的抽象方法后,方可实例化, 若…
引言 如上图,二维图形类有三个子类,分别是正方形类,三角形类,圆形类: 我们都知道要求正方形的面积,直接使用面积公式边长的平方即可,同理三角形的是底乘高除以2,圆的面积是$\pi$乘以半径的平方.那么二维图形的面积该怎么算呢?我们无法给出一个通用的方式.那么二维图形就不能计算面积了吗?不是的.只要是二维平面的图形,就可以计算面积,只是没有一个通用的公式而已.由此可见正方形,三角形,圆形的面积可以很具体的给出,但是二维图形不能,因为它很抽象. 由此可得二维图形类的面积计算应该是抽象的,是抽象方法.…
今天看工作看代码突然有了以下设想: /** * Created by zq on 2017/5/25. * 抽象类 */ public abstract class AbstractC { public void C(){ D(); System.out.println("C_1"); E(); } public abstract void D(); // { // System.out.println("C_1"); // } public abstract vo…
抽象方法:在类中没有方法体的方法,就是抽象方法. 抽象类:含有抽象方法的类就叫抽象类. 抽象类中的抽象方法必须被实现! 如果一个子类没有实现父类中的抽象方法,则子类也成为了一个抽象类! 抽象类中的普通方法,可以不必实现. 1.用abstract来修饰一个类时,这个类叫做抽象类:用abstract来修饰一个方法时,该方法叫做抽象方法.例如 :      抽象类: abstract class Animal { //用abstract来定义一个Animal为抽象类} 抽象方法: public abs…
1. 抽象类: 为什么用抽象类: 一些 generic 的类本身并没有现实意义,所以不需要被实例化.比如动物,自然界没有动物这个物种,但却有无数的继承自动物的物种,那么动物本身可以是一个抽象类. 抽象类使用规则: 抽象类不可以被创建,不能有实例. 抽象类不可以是 final 的,因为 final 类不能被继承,那么抽象类就没任何意义了. 抽象类可以包含任意可见性的属性. 可以包含非抽象方法,但非抽象方法必须实现(必须有函数体). 可以不包含抽象方法. 抽象方法只能声明,不能实现. 抽象方法在子类…
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第五十九章:抽象类与抽象方法详解 下一章 "全栈2019"Java第六十章:如何定义接口 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组"…
抽象类和抽象方法 什么是抽象类? 使用 abstract 修饰的类称为抽象类 public abstract class Person { } 抽象类的特征 1) 抽象类不可以创建对象 2) 抽象类可以有构造方法 public abstract class Person{ public Person(){ System.out.println("Person类中的无参构造方法"); } } 抽象类中构造方法的作用,是提供给子类调用的. package com.bjsxt.abstrac…
抽象 抽象方法:就是加上abstract关键字,然后去掉大括,直接分号结束.抽象类:抽象方法所在的类,必须是抽象类才行.在class之前写上abstract即可. 如何使用抽象类和抽象方法: 1.不能直接创建new抽象类对象. 2.必须用一个子类来继承抽象父类. 3.子类必须覆盖重写抽象父类当中所有的抽象方法.覆盖重写(实现):子类去掉抽象方法的abstract关键字,然后补上方法体大括. 4.创建子类对象进行使用.…
知识点 什么是抽象类 抽象类与普通类主要两点不同: 1.在类的修饰符后面多了一个abstract关键字 2.抽象类是不允许通过new来实例化的 由于抽象类不能通过new来实例化,所以基本上是在继承中当做父类使用. 什么是抽象方法 抽象方法的定义需要加上abstract关键字,不能有方法体,以封号结尾,比如: public abstract void getOtherSalary(); 抽象方法的具体实现,需要在子类中实现.注意:static.final的方法,不能被申明为抽象方法. 抽象类与抽象…
抽象类和抽象方法什么关系?抽象类中可能有抽象方法,也可能没有抽象方法.那位说,就跟没说一样,那抽象类和抽象方法都叫抽象,他们必定有关系,那关系是什么呢?如果一个类中有抽象方法,它必须得是抽象类. An abstract class may have no abstract method,such as the following class Car. 马  克- t  o --wi n: At this time,the only point and the meaning of abstrac…
抽象类和抽象方法有什么用呢?马克-to-win:当初sun公司为什么要设计抽象类和抽象方法呢?当你在做车的系统设计时,当你设计车这个通用类时,假如你确认别人实例化车这个通用类没有意义时(不知道是bike还是豪华轿车),你就坚决的在车这个通用类的类名前冠以abstract,将来就没人能实例化车这个类了.进一步讲:因为你不知道是什么车?所以你不知道如何驾驶,是拐把?还是方向盘?但你知道不管是什么车都得驾驶.所以你写个驾驶steer方法,冠以abstract,这样后来的子类,必须得把这个抽象方法实现掉…
package com.bawei.multithread; //注意:模板方法我们通常使用抽象类或者抽象方法!这里我们为了方便在本类中使用就没有使用抽象类/抽象方法 public class TemplateThread { //如果这个方法不想被子类或者别人随意改动[这样子类就不能覆写该方法了],这里方法就要设置为final方法 public final void println(String message){ System.out.println("###################…
接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法. 抽象类与接口是 Java 语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予 Java 强大的面向对象的能力.他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别. 一.抽象类 我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都是来描述对象的.如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑它,那么这样的类我们称它为抽象类.比如 new A…
1. 基本概念 用abstract修饰的类是抽象类.如果类中有方法是abstract类型的,那么此类肯定是abstract类型的,也就是说此类的修饰符肯定有abstract(也就是说,有抽象方法的类是抽象类).抽象类是不完整的,只能作为基类,且不能够实例化. 2. 与类进行比较 抽象类不能够实例化,并且对抽象类直接使用new运算符会导致编译错误. 允许抽象类中包含抽象方法或者变量. 抽象类不能是private的. 3. 和接口比较 不同点: 抽象类能够有实现了的方法,接口不能有. 类可以实现无数…
Java 抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量.成员方法和构造方法的访问方式和普通类一样. 由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用.也是因为这个原因,通常在设计阶段决定要不要设计抽象类. 父类包含了子类集合的常见的方法,但是由于父类本身是抽象的,所以不能使用这些方法. 在Jav…
第一次,写这个,没有把图片放上来,有兴趣的可以点击连接看原文 http://note.youdao.com/noteshare?id=aecbd52b9240f23c0954e8086b848a17 一:抽象类   java的抽象类用关键字abstract来进行声明.抽象类只关心它的子类是否具有某种功能,并不关心功能的具体实现,功能的具体实现是由子类来负责实现的. 抽象类不能被实例化(既不能new 出来),只能用作派生类的基类而存在.   抽象类的定义规则如下: 1.抽象类必须用abstract…
接口存在的原因: JAVA是单继承的,不支持多继承,但是有了接口,JAVA可以实现多个接口: 一个类要是实现某一个接口就必须实现接口内声明的所有方法(强迫执行,即便是空方法,也要实现): 接口特点: 1.接口内所有方法只有声明,没有方法体(隐式声明),例如:public abstract void func(); 2.接口内的所有变量都默认是public static final ,必须被显示初始化: 3.接口没有构造方法,不能被实例化: 4.实现接口的类要实现所有的抽象方法,否则该类就必须声明…
面向对象主要有三大特性:继承和多态.封装. 一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为: abstract void fun(); 抽象方法必须用abstract关键字进行修饰.如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰.因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象.抽象类的声明格式如下: public abstract class ClassName…