接口

接口

  1. 接口的关键字是interface
    Public interface 接口名称{
    }
  2. 接口是一种特殊的抽象类,要求接口中的所有方法都是抽象的
    不能有方法体。接口中的抽象方法可以不加abstract关键字修饰默认就是抽象的
    接口方法的访问修饰符,默认就是public,如果写只能是public

如果接口中的方法是静态的,则需要为该方法提供方法的实现
如果接口中的方法是默认的,则需要为该方法提供方法的实现
接口中不能有构造函数
接口不能实例化

public interface MyInterface {
	//接口中定义的方法默认就是抽象的没有方法体,且访问修饰符只有public 一种
	public   void test_method();
	void test_mehtod2();
	//错误,接口中不能有构造函数
	//public MyInterface(){ }
	
	public static void test_static_method(){
		System.out.println("这是接口中的一个静态方法");
	}
	public static void test_static_method2(){
		System.out.println("这是接口中的一个静态方法2");	
	} 
	public default void test_default_mehtod1(){
		System.out.println("这是接口中默认的方法");
	}
}

  1. 接口中的属性

接口中的属性必须是常量 必须赋值
接口中的属性访问修饰符只有(public 和 默认) 默认的也是public
默认常量的命名规范的所有字母都大写

//若果在普通类中定义定义常量需要使用public static final三个修饰符修饰,三个修饰符顺序可以调换
Public static final String NAME=”BEIJING”;
Static public final String NAME =”BEIJIN”;

public interface Inter {
	//  接口中的属性
	public String NAME="三生三世";
	String SEX ="女";
	public static final String ADDRESS="BEIJIMNG";
static public final String BIRTHDAY="1987-11-11";
	//protected String address="北京";//错误
	//定义的所有方法都是抽象的
	public void say();
	public void eat();
	void drink();  //默认的也是public 
	//接口中的静态方法
	static void sing(){
		System.out.println("ssssssssssssss");
	}
//	private void test();//错误
//	protected void abc();//错误
}

  1. 接口中的继承
    4.1. 接口继承接口是多继承关系
public interface Inter12  extends Inter1,Inter2{ 
}

4.2. 类继承接口:一个类实现了多个接口

public class MyClass implements MyInterface,MyInterface2 {
	//接口一中存在  test_mehto(),test_mehto2(),mehtod2() 三个抽象方法
	//接口二中存在method2()一个抽象方法,
	//则类中就可以重写三个即可
	@Override
	public void test_method() { 
	}
	@Override
	public void test_mehtod2() {
	} 
	@Override
	public void method2() {
	} 
}

4.3. 类继承类 : 类和类之间是单继承,一个类的直接父类只能有一个
类和类之间是单继承( extend一类只能继承一个父类)
类和接口之间是多实现(implements一个类可以实现多个接口)
接口和接口之间是多继承(exetend一个接口可以继承多个接口)

类和类之间的继承称之为 is-a 的关系 (是不是的关系)
Student 和 person student 是不是 person 如果是 就是继承
类和接口之间的实现关系称之为 hs-a的关系(是否拥有的关系)
FlyInter(飞的接口) 和 鸟, 飞机 (飞机拥有飞的行为,鸟 拥有飞的行为)
接口只是行为的规范

  1. 接口继承以后的向上转型(也是可以实现多态的)
    飞行的功能鸟可以有,飞机也可以有,如果想要看飞行的表演,我们就需要定义一个父接口,只要拥有接口的功能都可以进行飞行表演
//飞行接口的信息
public interface FlyInterface { 
	//可以飞的方法
	void fly();
}
//小鸟实现类信息
public class Bird implements FlyInterface {
	private String name;
	public Bird(String name){
		this.name = name;
	}
	@Override
	public void fly() {
		System.out.println("天上的"+name+"在飞翔");
	} 
	public void zuochongzi(){
		System.out.println("捉虫子");
	} 
}
//飞机实现类的信息你
public class Plane implements FlyInterface {
	private String name;
	public Plane(String name){
		this.name = name;
	}
	@Override
	public void fly() {
		// TODO Auto-generated method stub
		System.out.println("驾驶员开着"+name+",在天上打仗");
	}
	public void tubaiyan(){
		System.out.println("吐白烟");
	}
}
//使用类的信息
public class BiaoYan {
	public void kanbiaoyan(FlyInterface fly){
		fly.fly();
	}
}
//测试类的信息
public class Test {

	public static void main(String[] args) {
		BiaoYan by = new BiaoYan(); 
		Bird bird=new Bird("鸽子");
		Plane plane = new Plane("J20"); 
		//多态
		by.kanbiaoyan(bird);
		by.kanbiaoyan(plane); 
		//测试向上转型 以后只能调用接口中定义的方法
		FlyInterface fly = bird;
		
		fly = plane;
	} 
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值