【Java】抽象类(abstract)、接口(interface)
# 前言
写在前面的话,不听b站老师的话,不写博客又加之不经常用JAVA,导致现在遗忘十分严重,古人云:亡羊补牢,为时未晚。故今日做补牢之举。勉之!
---
# 一、抽象类
抽象类类中可以没有抽象方法,但如果有抽象方法,则该类一定是抽象类。抽象方法只写方法的声明,具体实现交给子类(非抽象类)去实现。
```java
public abstract class Abstract {
public abstract void run();
}
```
如上,声明了一个run的抽象方法,具体的实现交给子类。
```java
public class Demo01 extends Abstract{
@Override
public void run()
{
System.out.println("一直努力的向前奔跑");
}
}
```
子类需要先继承抽象类(extends),然后重写父类中所有的抽象方法。
> 抽象类的特点:
1、抽象类中没有构造方法,所以不能够直接实例化对象
2、抽象类中可以没有抽象方法,但有抽象方法的一定是抽象类。
3、抽象方法需要一个非抽象子类,来继承,重写方法。
4、抽象类只能单继承,不能够多继承(Class cannot extend multiple classes)
# 二、接口
接口的本质是契约,最主要的重要是约束和实现的分离
创建一个接口
```java
public interface Demo02interface {
void walk();
}
```
用到interface关键字,它和class是同级的。
> 1、接口中没有构造方法,所以不能直接实例化对象,interface
2、接口中只有常量 public static final
3、接口中不能写方法体
4、所有的方法默认都是抽象的
5、子类需要用implements来使用接口,同时要重写(@Override)接口的方法
6、接口可以实现多继承 接口要用,来分隔(多继承确实牛啊)
接口的多继承
```java
public class Demo03 implements Demointerface,Demo02interface{
@Override
public void run()
{
System.out.println("我一直在努力的奔跑");
}
public void walk()
{
System.out.println("走累了,就歇一会");
}
}
```
---
# 总结
## 前路茫茫,与君共勉 安静的进步,快乐的学习
![](https://res.hc-cdn.com/ecology/9.3.128/v2_resources\images\global\blog-dialog.png)
华为开发者空间发布
让每位开发者拥有一台云主机
- 点赞
- 收藏
- 关注作者
评论(0)