博客作业4(抽象类 接口)

博客作业4(抽象类 接口)


一、抽象类

在继承的层次结构中,每个新子类都是使类变得越来越明确和具体,如果从一个子类追溯到父类,类就会变得更通用、更加不明确。类的设计应该确保父类包含它的子类的共同特征,有时候,一个父类设计得非常抽象,以至于他都没有任何具体的实例,这样的类称为抽象类。

1.代码举例

  • 在Java语言中使用abstract class来定义抽象类。
public abstract class university {}
  • 使用继承来实现
public class Student extends university {
     @Override
     public void show() {
        System.out.println("重写父类的抽象方法");

    }

}

二、抽象类总结

  • 抽象方法不能包含在非抽象类中
  • 抽象类不能使用new操作符来初始化
  • 包含抽象方法的类必须是抽象的
  • 子类可以覆盖父类的方法并将它定义为abstract
  • 即使子类的父类是具体的,这个子类也可以是抽象的
  • 不能使用new操作符从一个抽象类创建一个实例

三、接口

接口在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

在java中接口被看作是一种特殊的类,每个接口都被编译为独立的字节码文件。使用接口或多或少都有点像使用抽象类。

类和接口的关系称为接口继承,因为接口继承和类继承本质上都是相同的,所以我们都将他们简称为继承。

1.代码举例

Interface关键字用来声明一个接口。例如:

[可见度] interface 接口名称 [extends 其他的接口名] {
        // 声明变量
        // 抽象方法
}

接口使用:

public interface shop {
    
    // 定义2个抽象方法
    public void food();
    public void clothes();

}
//实现接口shop
public class ShopImp implements shop {

    // 必须重写接口的全部抽象方法
    @Override
    public void run() {
        System.out.println("售卖食物");

    }

    @Override
    public void clothes() {
        System.out.println("售卖服装");

    }

}

public class Test {

    public static void main(String[] args) {
        //声明对象
        ShopImp p=new ShopImp();
        //调用实现的方法
        p.food();
        p.clothes();

    }

}

四、接口和抽象类的区别

  • 抽象类中有构造方法,接口没有

  • 抽象类要被子类继承,接口要被类实现

  • 抽象类和接口都不能直接实例化

  • 抽象类可以有普通方法,接口只能抽象方法

  • 抽象类的成员变量可以是什么类型,接口默认public static final

  • 接口没有静态代码块和静态方法,抽象类可以有

  • 一个类只能继承一个抽象类,一个类可以实现多个接口,一个接口可以继承多个接口

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值