晋南讲堂之Java抽象类(abstract)与接口(interface)区分

抽象类(abstract)和接口(interface)的对比

1. 抽象类(abstract)

  我们一般声明一个抽象类按照如下形式:

abstract  class ClassName{
	//成员变量
	//成员方法
}

  一个抽象类中可以有一个或者多个抽象方法,也就是说抽象类中可以有具体方法。其目的是为所有子类定义一个统一的接口。声明抽象方法的格式如下:

abstract 返回值类型 方法名(参数列表);
eg: public abstract void fun();

抽象类需遵循以下几点:
  1. 抽象类不能被new出来实例
  2.抽象类和抽象方法必须用abstract关键字修饰,抽象类不一定要包含抽象方法。
  3.抽象方法只需要声明,没有必要实现
  4.抽象类必须被继承,抽象方法必须被重写
  5.如果包含抽象方法,则该类必须是抽象的。子类必须重写父类所有的抽象方法,否则该子类还是抽象类
  备注:抽象方法是要被子类实现的,所以访问控制符不可能是private,修饰符不可能使用staticnative

2. 接口(interface)

  接口是Java中实现多重继承的一种方式,是抽象方法常量的集合。接口是一种特殊的抽象类,它只定义了常量和方法,而不包含变量和具体方法的实现。接口的声明如下:

public interface 接口名称{
	//常量
	//方法声明
}

  接口中的常量都有public static final的属性,虽然这些可以不写。接口中只进行方法的声明,不写方法的实现。接口中的方法都有public abstract的属性,虽然这些关键字可以不写。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值