JAVA基础——抽象类与接口的关系

😃 JAVA基础——抽象类与接口的关系

抽象类

抽象类的用途

抽象类是用于束缚和规范代码结构而存在的,它定义了子类需要的抽象方法,并且子类无法修改父类中的抽象方法。

抽象类的创建

抽象类需要关键字abstract修饰,类中可以包含抽象方法和普通的方法,

package Abstract;

public abstract class Person {
    public void play() {
        System.out.println("人们需要游戏");
    }
    public abstract void say();
    public abstract void eat();
}

抽象方法

在抽象类中,可以包含抽象方法和其他方法;抽象方法也需要关键字abstract进行定义,并且没有方法体;在子类继承抽象类的时候,必须实现父类的抽象方法,从而达到对子类方法的规范。

抽象类的特点

  • 抽象类不能够实例化,但是可以像多态一样,父类引用子类的实例对象。
  • 抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类。
  • 如果子类继承抽象类,必须实现抽象类的抽象方法。
  • 如果子类不实现抽象类的抽象方法,那么子类一定是抽象类。

接口

接口的目的

接口是为了解决java无法多继承的弊端,并且接口可以多继承;接口和抽象类类似,也是为了规范和约束实现类的行为。

接口的创建

定义接口不再是类,用关键字interface来定义接口,而类实现接口需要在类名前加上implements关键字。

//不能有构造方法和普通方法。
package Interface;

public interface Life {
    String NAME = "种族名称";
	//与 public abstract final String NAME = "种族名称"; 相等。
    public abstract void say();
	// public abstract 可以省略。
}

实现接口的类:

package Interface;

public class TestLife implements Life {
    
    @Override
    public void say() {
        System.out.println("说话");
        System.out.println(Life.NAME);
    }
}

接口的特性

  • 接口不能够实例化。
  • 接口中只能够有常量和抽象方法。
  • 接口可以继承多个接口。
  • 接口实现类必须实现接口的所有抽象方法,除非接口实现类为抽象类。

接口和抽象类的对比

抽象类接口
定义所需关键字abstractinterface
组成正常类和抽象方法常量和抽象方法
使用继承实现和继承
关系实现接口不能继承抽象类
局限单继承可以多继承
重载不能被重载不能被重载

😐 😃 😦 好好玩

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值