当前位置:网站首页>抽象类和接口
抽象类和接口
2022-08-11 07:35:00 【crazy__xieyi】
目录
一、抽象类
- 1.语法规则
- 2.抽象类的特性
- 3.作用
二、接口
- 1.语法规则
- 2.接口的使用
- 3.接口特性
- 4.实现多个接口
- 5.接口间的继承
三、抽象类和接口的区别
总结
一、抽象类
1.语法规则
// 抽象类:被abstract修饰的类
public abstract class Shape {
// 抽象方法:被abstract修饰的方法,没有方法体
abstract public void draw();
abstract void calcArea();
// 抽象类也是类,也可以增加普通方法和属性
public double getArea(){
return area;
}
protected double area; // 面积
}
2.抽象类的特性
3.作用
二、接口
1.语法规则
接口的定义格式与定义类的格式基本相同,将class关键字换成 interface 关键字,就定义了一个接口。
public interface 接口名称{
// 抽象方法
public abstract void A(); // public abstract 是固定搭配,可以不写
public void B();
abstract void C();
void D();
// 注意:在接口中上述写法都是抽象方法,推荐方式4( void D();),代码更简洁
}
2.接口的使用
接口不能直接使用,必须要有一个"实现类"来"实现"该接口,实现接口中的所有抽象方法。子类和父类之间是extends 继承关系,类与接口之间是implements 实现关系。
3.接口特性
1. 接口不能实例化。
4.实现多个接口
5.接口间的继承
interface A extends A1, A2, A3 {
}
三、抽象类和接口的区别
抽象类和接口都是 Java 中多态的常见使用方式。

总结
抽象类:
1.抽象类使用abstract修饰。
2.抽象类中可以包含普通类中所包含的成员。
3.抽象类与普通类不一样的是,抽象类可以包含抽象方法。
4.抽象方法使用abstract修饰,抽象方法可以没有具体的实现。
5.不能实例化抽象类。
6.抽象类存在的意义就是为了被继承。
7.如果一个普通类继承了一个抽象类,那么普通类就必须重写抽象类当中的方法。
8.如果一个抽象类A继承了一个抽象类B,此时A当中不需要重写B当中的抽象方法,但是如果A再被普通类继承,就需要重写。
9.抽象方法不能是私有的,要满足重写的规则。
10.抽象类当中可以有构造方法,是为了方便子类能够调用,来初始化抽象类中的成员。
接口:
1.使用interface来修饰接口。
2.接口当中的成员方法不能有具体的实现:默认是public abstract 的方法;JDK8开始,允许有可以实现的方法,但这个方法只能是由default修饰。可以实现有一个静态方法。
3.接口中的成员变量默认是 public static final 修饰的。
4.接口不能被实例化。
5.类与接口之间采用implements来实现多个接口。
6.子类重写抽象方法,必须加上public。
7.接口中不能有静态代码块和构造方法。
8.如果不想实现接口的方法,可以把这个类定义为抽象类,但是这个类如果被其它类继承,就需要重写。
9.一个类可以实现多个接口,使用implements,用逗号隔开,这样可以解决多继承的问题。
边栏推荐
- 1076 Wifi Password (15 points)
- FPGA 20个例程篇:11.USB2.0接收并回复CRC16位校验
- tf中矩阵乘法
- 易观分析联合中小银行联盟发布海南数字经济指数,敬请期待!
- 囍楽cloud task source code
- TF generates (feature, label) set through feature and label, tf.data.Dataset.from_tensor_slices
- 1.1-Regression
- The softmax function is used in TF;
- My creative anniversary丨Thank you for being with you for these 365 days, not forgetting the original intention, and each is wonderful
- CSDN21天学习挑战赛——封装(06)
猜你喜欢
分布式锁-Redission - 缓存一致性解决
TF中的条件语句;where()
About # SQL problem: how to set the following data by commas into multiple lines, in the form of column display
Pico neo3 Unity打包设置
记录一些遇见的bug——Lombok和Mapstruct的冲突导致,A component required a bean of type ‘com.XXX.controller.converter.
项目1-PM2.5预测
Project 1 - PM2.5 Forecast
1.1-Regression
Keep track of your monthly income and expenses through bookkeeping
1096 大美数 (15 分)
随机推荐
go-grpc TSL认证 解决 transport: authentication handshake failed: x509 certificate relies on ... ...
项目2-年收入判断
1002 写出这个数 (20 分)
1046 punches (15 points)
结合均线分析k线图的基本知识
Evolution and New Choice of Streaming Structured Data Computing Language
Conditional statements in TF; where()
【Pytorch】nn.PixelShuffle
oracle数据库中列转行,列会有变化
tf.cast(), reduce_min(), reduce_max()
租房小程序
CIKM 2022 AnalytiCup Competition: 联邦异质任务学习
The easiest trick to support quick renaming of various files
TF中的条件语句;where()
1091 N-Defensive Number (15 points)
场地预订系统,帮助场馆提高坪效
1096 大美数 (15 分)
1071 小赌怡情 (15 分)
Service的两种状态形式
【LeetCode】Summary of linked list problems