当前位置:网站首页>抽象类和接口
抽象类和接口
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,用逗号隔开,这样可以解决多继承的问题。
边栏推荐
猜你喜欢

软件测试常用工具的用途及优缺点比较(详细)

tf.cast(),reduce_min(),reduce_max()

Item 2 - Annual Income Judgment

MindManager2022全新正式免费思维导图更新

经典论文-MobileNet V1论文及实践

TF通过feature与label生成(特征,标签)集合,tf.data.Dataset.from_tensor_slices

1076 Wifi Password (15 points)

tf中矩阵乘法

Keep track of your monthly income and expenses through bookkeeping

1056 Sum of Combinations (15 points)
随机推荐
Write a resume like this, easy to get the interviewer
1003 我要通过 (20 分)
2022-08-10 mysql/stonedb-慢SQL-Q16-耗时追踪
1002 Write the number (20 points)
Conditional statements in TF; where()
tf中自减操作;tf.assign_sub()
伦敦银规则有哪些?
1.1-Regression
1091 N-自守数 (15 分)
【Pytorch】nn.ReLU(inplace=True)
1096 big beautiful numbers (15 points)
9、Neural Sparse Voxel Fields
关于#sql#的问题:怎么将下面的数据按逗号分隔成多行,以列的形式展示出来
Redis source code: how to view the Redis source code, the order of viewing the Redis source code, the sequence of the source code from the external data structure of Redis to the internal data structu
redis操作
流式结构化数据计算语言的进化与新选择
【BM87 合并两个有序的数组】
Analysys and the Alliance of Small and Medium Banks jointly released the Hainan Digital Economy Index, so stay tuned!
1.1-回归
【Day_13 0509】▲跳石板