抽象类abstract

普通类

  • 普通类可以直接产生实例化对象,并且在普通类之中可以包含有构造方法,普通方法、static 方法、常量、变量的内容。
  • 所有的普通方法都会有一个"{}",这个表示方法体,有方法体的方法一定可以被对象直接调用。

抽象类

  • 指在普通类的结构里面增加抽象方法的组成部分。

  • 拥有抽象方法的类一定属于抽象类,抽象类要使用abstract声明。

  • 抽象类中的抽象方法没有方法体,声明时不需要加"{}",但是必须有abstract声明,否则在编译时将出现语法错误。

  • abstract修饰符可以用来修饰方法,也可以修饰类,如果修饰方法,那么方法就是抽象方法;如果修饰类,该类就是抽象类。

  • 抽象类中可以没有抽象方法,但是有抽象方法的类,一定要声明为抽象类。

  • 抽象类,不能使用new关键字类创建对象,它是用来让子类继承的。

  • 抽象方法,只有方法的声明,没有方法的实现,它是用来让子类实现的。

  • 子类继承抽象类,那么就必须要实现抽象类,没有实现的抽象方法,否则该子类也要声明为抽象类。

abstract class A{
public void fun(){//普通方法
System.out.println("存在有方法体的方法!");
}
//此方法并没有方法体的声明,并且存在有abstract关键字,表示抽象方法
public abstract void print();
}

#总结
- 抽象类继承子类里面会有明确的方法覆写要求,而普通类并没有。
- 抽象类只比普通类多了一些抽象方法的定义,其他的组成部分与普通类完全一样。
- 普通类对象可以直接实例化,但是抽象类的对象必须经过向上转型之后才可以得到实例化对象。
`虽然一个子类可以去继承任意一个普通类,但是从开发的实际要求来讲,普通类不要去继承另外一个普通类,而要继承抽象类。`

追随内心,步履不停。

最新文章

  1. Maven build lifecycle
  2. Docker实践:安装wordpress
  3. 启用https协议的方法
  4. Slip.js(移动端跟随手指滑动组件,零依赖)
  5. 对弈类游戏的人工智能(4)--游戏AI的落地
  6. mac 下获取 os x 的系统版本,使用 oc cocoa
  7. JS页面间传值
  8. boost-内存管理(scoped_array)
  9. 简单十步让你全面理解SQL
  10. OSGI原形(.NET)
  11. Spring Security(12)——Remember-Me功能
  12. Jetson TX1刷机
  13. 905. Sort Array By Parity
  14. jquery和js检测浏览器窗口尺寸和分辨率
  15. Jsの练习-数组常用方法 -splice()
  16. 使用FFmpeg常见问题
  17. ruby安装卸载
  18. poi读取Excel文件和图片
  19. CF312B 【Archer】
  20. ROS新动态获取网址汇总

热门文章

  1. .Net 7 内存模型函数描述结构MethoDesc
  2. (3)go-micro微服务项目搭建
  3. GFast V3.2.1 版本发布,采用 GoFrame 2.3 + Vue3 后台管理系统
  4. 【随笔记】MFC 解决按下 ESC、Enter 键会自动退出的问题
  5. MRS_外部库相关问题汇总
  6. HTTPS基础原理和配置 - 1
  7. 【DS】1.2
  8. SpringMVC返回值类型及响应数据类型
  9. Centos7下areaDetector IOC的编译(回收站捡回)
  10. dotnet 缓存