抽象(abstract):

  抽象类:使用abstract修饰的类。
抽象类的特点:
1.抽象类中可以包含抽象方法,因为抽象方法只有方法的声明,没有方法的实现,所以抽象类不能被实例化!

2.抽象类一定是一个父类,那么需要子类来“实现”抽象类中的抽象方法。

3.a)如果子类实现了父类中所有的抽象方法,那么该子类就能被实例化!.b)如果子类实现了父类中的部分抽象方法,那么该子类就不能被实例化,因为该子类依旧就是一个抽象类!c)抽象类和子类的关系是extends关系,从本质上来讲,抽象类就是一个特殊的普通类(包含了抽象方法)!d)关于“重写”和“实现”的理解
  重写:指的就是子类重写普通父类中的方法,那么我们就称之为重写!
  实现:指的就是子类重写抽象类中的方法,那么我们就称之为实现!

4.抽象类的组成:a)抽象类中,可以包含抽象方法,意味着可以有抽象方法,也可以没有抽象方法。b)抽象类中,可以包含属性(成员变量和静态变量)和方法(成员方法和静态方法)。c)抽象类中,可以包含静态代码块和构造代码块。d)抽象类中,可以包含构造方法,在子类的构造方法中去调用抽象类的构造方法, 从而实现给抽象类中的成员变量做初始化!
总结:抽象类就是一个特殊的类。相比较于普通类,抽象类可以包含抽象方法。

抽象方法:
声明是抽象方法:使用abstarct修饰的方法。
  a)抽象方法只有方法的声明,没有方法的实现!
  b)子类只有把抽象类中的抽象方法全部实现,那么该子类才能被实例化!
如果子类没有全部实现抽象类中的方法,那么该子类就不能被实例化,该子类依旧是一个抽象类!

抽象方法的使用场合:1)父类不能被实例化。 2)要求子类必须全部实现抽象类(父类)中的方法。3)一个类中,包含了抽象方法,也包含了普通类中的内容(属性、方法、构造方法、代码块),那么这个类必须使用abstarct修饰。

注意:
  1)abstarct和 final是反义词!
  2)abstarct不能和 final、private和static一起共存!
  3)抽象类也可以实现多态! 例如: Employee employee = new Teacher();

public abstract class Animal {/*** 动物吃方法*/public abstract void eat();/*** 动物睡方法*/public abstract void sleep();
}
public class Cat extends Animal {public void eat(){System.out.println("猫在吃鱼。。。");}public void sleep() {System.out.println("猫在睡觉。。。");}
}
public abstract class Dog extends Animal {//这里Dog对象被abstract修饰,所以对象不能被实例化,如需实例化,去掉abstruct即可。public void eat(){System.out.println("狗狗在吃狗粮。。。");}public void sleep() {System.out.println("狗狗在睡觉觉。。。");      }}
public class Test {public static void main(String[] args) {//如果也想在Cat cat = new Cat();cat.eat();cat.sleep();//Dog dog = new Dog();这里会报错,因为抽象类不能被实例化。
}
}

运行结果:
  猫在吃鱼。。。
  猫在睡觉。。。

JavaSE:抽象(abstract)相关推荐

  1. 零基础入门 自学 JAVA SE 基础篇(九)instanceof final 开闭原则 多态 抽象(abstract)方法与抽象类 接口(interface)

    JAVA SE自学 基础篇 多态 instanceof final 开闭原则 多态 抽象(abstract)方法与抽象类 接口(interface) 目标 父类型与子类型之间的转换及instanceo ...

  2. 抽象abstract和接口详解

    1什么是抽象(abstract)?​ 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽 ...

  3. Java基础知识系列之-抽象abstract

    1.何为抽象 抽象类往往用来表征我们在对问题领域进行分析. 设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象,我们不能把它们实例化(拿不出一个具体的东西)所以称之为抽象. 比 ...

  4. 【JavaSE】abstract 抽象类 快到碗里来 (◕ᴗ◕✿)

    啥是抽象类?抽象类是用来干嘛的? 上层简单总结 所谓抽象类,就是把一些事物的共性总结起来,封装在一个抽象类当中从而形成一个模板,供子类进行继承并实现.子类总体上会保留抽象类的行为方式,并且在父类的基础 ...

  5. php中什么是abstract,深入解读php中抽象(abstract)类和抽象方法

    在面向对象(OOP)语言中,一个类可以有一个或多个子类,而每个类都有至少一个公有方法作为外部代码访问的接口.而抽象方法就是为了方便继承而引入的,现在来看一下抽象类和抽象方法分别是如何定义以及他们的特点 ...

  6. 接口(interface)和抽象(abstract)类的区别

    2019独角兽企业重金招聘Python工程师标准>>> 接口与抽象类的区别: 1 两者表达的概念不一样.抽象类是一类事物的高度聚合,与子类的关系属于"是"的关系: ...

  7. Java中抽象(abstract)

    目录 1.抽象类概述 2.抽象类的注意事项 3.模板设计模式 4.final关键字 5.abstract final static 关键字对比 6.代码块 1.抽象类概述 抽象方法:         ...

  8. 设计模式 - 抽象工厂模式(abstract factory pattern) 详解

    抽象工厂模式(abstract factory pattern) 详解 本文地址: http://blog.csdn.net/caroline_wendy/article/details/270916 ...

  9. JAVASE 面向对象

    面向对象 文章目录 面向对象 1.面向对象 1.1面向对象的特征 2.类和对象 2.1类 2.2对象 3.局部变量 & 成员变量的区别 4.值传递和引用传递 5.匿名对象 5.1匿名对象特点 ...

  10. 05【继承、抽象、权限修饰符、final】

    文章目录 05[继承.抽象.权限修饰符.final] 一.继承 1.1 继承概述 1.2 继承的格式 1.3 继承案例 1.3.1 需求 1.3.2 分析 1.3.3 代码实现 1.4 父类不可被继承 ...

最新文章

  1. 计算机组成要素六:编译器 语法分析器
  2. 【CASS精品教程】CASS9.1等高线的绘制完整案例教程
  3. 解决Based on configured schedule, the given trigger ‘triggerGroupName_FREEZE_JOB.triggerName_FREEZE...
  4. Oracle 日期时间函数大全
  5. python(48):re.split 多分隔符
  6. java查看ip的所属地区
  7. 【转】阿里巴巴性能测试规划思路
  8. 超级详细的手把手教你使用Lighthouse更好推动项目性能优化,性能指标详解,优化方法,需要关注指标分析
  9. 华为面试题:一头牛重 800 公斤,一座桥承重 700 公斤,请问牛怎么过桥?
  10. 全网最全leafLetAPI中文版
  11. 利用宝塔面板部署SSM项目
  12. 中国油用牡丹行业需求状况及产销规模预测报告(新版)2022-2027年
  13. 局域网入侵检测过程详解
  14. iOS开发--AVPlayer实现音乐播放器
  15. Xilinx软件开发:PMU实验
  16. C# 通用方法MD5计算
  17. Facebook 申请蓝色认徽章
  18. 人工智能知识全面讲解:生成对抗网络的应用
  19. 【tensorrt】——Network has dynamic or shape inputs, but no optimization profile has been defined.
  20. Gvim高级操作001--对匹配关键字进行操作--数字运算结果替换

热门文章

  1. 【森气杂谈】群晖NAS内外网磁盘映射以及quick connect设置
  2. 微型计算机原理...,微型计算机原理
  3. MTK 虚拟 sensor bring up (pick up) sensor1.0
  4. Cesium源码解读系列(一):GeoJsonDataSource如何处理geojson格式的数据
  5. Nvidia TX2 刷机全过程
  6. c语言之动静态链接库
  7. idea 如何合并其他分支的指定文件或代码块到当前分支
  8. Linux系统下nohup日志文件按日期分割展示
  9. 材料科学与工程毕业论文题目【313个】
  10. linux 路由转发 ipv6,IPv6路由