【Java】抽象类(abstract)、接口(interface)

举报
游坦之 发表于 2022/10/11 10:10:18 2022/10/11
【摘要】 # 前言写在前面的话,不听b站老师的话,不写博客又加之不经常用JAVA,导致现在遗忘十分严重,古人云:亡羊补牢,为时未晚。故今日做补牢之举。勉之!---# 一、抽象类抽象类类中可以没有抽象方法,但如果有抽象方法,则该类一定是抽象类。抽象方法只写方法的声明,具体实现交给子类(非抽象类)去实现。```javapublic abstract class Abstract {    public a...


# 前言

写在前面的话,不听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("走累了,就歇一会");
    }
}
```

---

# 总结

## 前路茫茫,与君共勉 安静的进步,快乐的学习

推荐

华为开发者空间发布

让每位开发者拥有一台云主机

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。