[Java教程 36] Java接口详解

转载声明:商业转载请联系作者获得授权,非商业转载请注明出处.原文来自 © 呆萌钟【JavaSe必知必会】38-Java接口详解 

接口特点

  • 接口用关键字interface表示
    • 格式:interface 接口名{}
  • 类实现接口用implements表示
    • 格式:class 类名 implements 接口名{}
  • 接口不能实例化
    • 那么,接口如何实例化呢?
    • 按照多态的方式,由具体的子类实例化。其实这也是多态的一种,接口多态
  • 接口的子类
    • 要么是抽象类
    • 要么重写接口中的所有抽象方法

接口成员特点

  • 成员变量
    • 只能是常量
    • 默认修饰符public static final
  • 构造方法
    • 没有,因为接口主要是扩展功能的,而没有具体存在
  • 成员方法
    • 只能是抽象方法
    • 默认修饰符public abstract
/*
	接口成员特点:
		成员变量:只能是常量,并且是静态的
				默认修饰符:public static final
				建议:自己手动给出。
		构造方法:接口没有构造方法
		成员方法:只能是抽象方法
				默认修饰符:public abstract
				建议:自己手动给出。
		
	所有的类都默认继承自一个类:Object
	类Object是类层次结构的根类。每个类都使用Object作为超类。
*/
interface Inter{
	public int num = 10;
	public final int num2 = 20;
	public static final int num3 = 30;
	// 需要<标识符>
	//public Inter(){}
	//接口抽象方法不能带有主体
	//public void show(){}
	void show();
}
//接口名+Impl这种格式是接口的实现类格式
/*class InterImpl implements Inter{
	public InterImpl(){
		super();
	}
}*/
class InterImpl extends Object implements Inter{
	public InterImpl(){
		super();
	}
	
	void show(){}
}

public class InterfaceDemo2{
	public static void main(String[] args){
		//创建对象
		Inter i = new InterImpl();
		System.out.println(i.num);
		System.out.println(i.num2);
		System.out.println("---------------------");
		//i.num = 100;//无法为最终变量num分配值
		//i.num2 = 200;//无法为最终变量num2分配值
		//System.out.println(i.num);
		//System.out.println(i.num2);
		System.out.println(Inter.num);
		System.out.println(Inter.num2);
		System.out.println(Inter.num3);
	}
}

抽象类和接口的区别

  • 成员区别
    • 抽象类 变量,常量;又抽象方法;抽象方法;非抽象方法
    • 接口 常量;抽象方法
  • 关系区别
    • 类与类 继承,单继承
    • 类与接口 实现,单实现,多实现
    • 接口与接口 继承,单继承,多继承
  • 设计理念
    • 抽象类 呗继承体现的是:“is a”的关系。共性功能
    • 接口 被实现体现的是:“like a”的关系,扩展功能
/*
	类与类:
		继承关系,只能单继承,可以多层继承
	类与接口:
		实现关系,可以单实现,也可以多实现
	接口与接口:
		继承关系,可以单继承,也可以实现多继承,可以多层继承
*/
interface Father{
	public abstract void show();
}

interface Mother extends NaiNai{
	public abstract void show2();
}

interface NaiNai{
	public abstract void show3();
}

interface Sister extends Father,Mother{
	
}

class Son implements Father,Mother{
	public void show(){
		System.out.println("show Son");
	}
	public void show2(){
		System.out.println("show2 Son");
	}
	public void show3(){
		System.out.println("show3 Son");
	}
}

public class InterfaceDemo3{
	public static void main(String[] args){
		Son s = new Son();
		s.show();
		s.show2();
		s.show3();
	}
}

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值