目录
-
一、抽象类
- 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.抽象类的特性
抽象方法没有加访问限定符时,默认是public.
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. 接口不能实例化。
public abstract(只能是public abstract,其他修饰符都会报错)。
public static final 变量。
4.实现多个接口
Java
中不支持多继承,但是
一个
口。
一个类实现多个接口时,每个接口中的抽象方法都要实现,否则类必须设置
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,用逗号隔开,这样可以解决多继承的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/94479.html