Java面向对象之抽象类abstract
2024-09-08 18:23:49
抽象类abstract
普通类
- 普通类可以直接产生实例化对象,并且在普通类之中可以包含有构造方法,普通方法、static 方法、常量、变量的内容。
- 所有的普通方法都会有一个"{}",这个表示方法体,有方法体的方法一定可以被对象直接调用。
抽象类
指在普通类的结构里面增加抽象方法的组成部分。
拥有抽象方法的类一定属于抽象类,抽象类要使用abstract声明。
抽象类中的抽象方法没有方法体,声明时不需要加"{}",但是必须有abstract声明,否则在编译时将出现语法错误。
abstract修饰符可以用来修饰方法,也可以修饰类,如果修饰方法,那么方法就是抽象方法;如果修饰类,该类就是抽象类。
抽象类中可以没有抽象方法,但是有抽象方法的类,一定要声明为抽象类。
抽象类,不能使用new关键字类创建对象,它是用来让子类继承的。
抽象方法,只有方法的声明,没有方法的实现,它是用来让子类实现的。
子类继承抽象类,那么就必须要实现抽象类,没有实现的抽象方法,否则该子类也要声明为抽象类。
abstract class A{
public void fun(){//普通方法
System.out.println("存在有方法体的方法!");
}
//此方法并没有方法体的声明,并且存在有abstract关键字,表示抽象方法
public abstract void print();
}
#总结
- 抽象类继承子类里面会有明确的方法覆写要求,而普通类并没有。
- 抽象类只比普通类多了一些抽象方法的定义,其他的组成部分与普通类完全一样。
- 普通类对象可以直接实例化,但是抽象类的对象必须经过向上转型之后才可以得到实例化对象。
`虽然一个子类可以去继承任意一个普通类,但是从开发的实际要求来讲,普通类不要去继承另外一个普通类,而要继承抽象类。`
追随内心,步履不停。
最新文章
- Maven build lifecycle
- Docker实践:安装wordpress
- 启用https协议的方法
- Slip.js(移动端跟随手指滑动组件,零依赖)
- 对弈类游戏的人工智能(4)--游戏AI的落地
- mac 下获取 os x 的系统版本,使用 oc cocoa
- JS页面间传值
- boost-内存管理(scoped_array)
- 简单十步让你全面理解SQL
- OSGI原形(.NET)
- Spring Security(12)——Remember-Me功能
- Jetson TX1刷机
- 905. Sort Array By Parity
- jquery和js检测浏览器窗口尺寸和分辨率
- Jsの练习-数组常用方法 -splice()
- 使用FFmpeg常见问题
- ruby安装卸载
- poi读取Excel文件和图片
- CF312B 【Archer】
- ROS新动态获取网址汇总