java 面向对象的多态性——接口

接口

我们知道,抽象类是对具体类 中共性的向上抽取。而接口内的方法全为抽象方法。

  • 接口中成员:
    常量,
    抽象方法
interface Inter
{
	public static final int NUM = 3;
	public abstract void show();
}

接口除了满足抽象类的条件外,其修饰符和接口中方法还需满足:

修饰符

  • 常量:public static fianl
  • 方法 public abstract

接口中方法

不能有构造方法
不能有静态方法
不能有带方法体的方法

继承和接口的关系:

  • 子父类之间的关系是继承,而在接口里,则叫做实现(implements)

  • 子类对接口中的方法全实现后,才能建立对象(实例化),否则子类仍是抽象类

  • 一个子类可以实现多个接口,即多实现,这是Java在没有多继承下的另一种表现形式

    ——原因是接口中的方法都没有方法体
    ——多个接口中存在方法名相同,参数列表相同,返回值相同的方法,子类同时实现这几个接口,实现该方法,编译运行通过。

示例:

interface Inter
{
	public abstract void show();
}

interface InterA
{
	public abstract void show();
}
class DemoC implements Inter,InterA
{
	public void show()
	{
		System.out.println("\n");
	}
}

——多个接口中存在方法名相同,参数列表相同,返回值不的方法,子类实现该方法,编译不通过,提示信息如

类型 InterA 和 Inter 不兼容;两者都定义了 show(),但却带有不相关的返回类型

示例:

interface Inter
{
	public abstract void show();
}

interface InterA
{
	public abstract int show();
}

——多个接口中存在方法名相同,参数列表不同 (重载),子类实现其中一个方法,编译运行都通过,运行结果根据子类的实现方法中的参数列表而定。

  • 一个子类可以同时继承父类和实现接口

  • 接口之间可以有多继承(extends)

示例:

interface Inter
{
	public abstract void show();
}

interface InterA
{
	public abstract void show();
}
interface InterC extends Inter,InterA
{
}
class DemoC implements InterC
{
	public void show()
	{
		System.out.println("\n");
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值