Java面向对象-接口

定义:一种特殊的“抽象类”,没有普通方法,由全局常量和公共的抽象方法所组成
常量定义:public static final…(一般省略)
方法定义:public abstract…(一般省略)

1.接口的定义
接口定义用关键字 interface

public interface A {
	//全局常量
	/*public static final*/ String TITLE="我爱编程";
	
	//抽象方法
	/*public abstract */void a();
}

2,实现接口 可以实现一个或者多个接口
实现接口我们用implements关键字,建一个测试方法

public class test30 implements A{

	@Override
	public void a() {
		System.out.println("方法a");
	}
	
	public static void main(String[] args) {
		test30 t=new test30();
		t.a();
		System.out.println(A.TITLE);
	}

}

实现接口 ,类里要实现接口里的抽象方法;

运行结果
在这里插入图片描述
为了演示实现多个接口,这里再定义一个接口

public interface B {
	//全局常量
	public static final String TITLE2="我爱Java";
	//抽象方法
	public abstract void b();
}

修改下测试类

public class test30 implements A,B{

	@Override
	public void a() {
		System.out.println("方法a");
	}
	
	@Override
	public void b() {
		System.out.println("方法b");
		
	}
	
	public static void main(String[] args) {
		test30 t=new test30();
		t.a();
		t.b();
		System.out.println(A.TITLE);
		System.out.println(B.TITLE2);
	}
}

实现多个接口,中间用逗号隔开,并且实现所有抽象方法

运行结果
在这里插入图片描述
3.继承类和实现接口
先继承,后实现接口

先定义一个类C

public class C {
	public void c() {
		System.out.println("c方法");
	}
}

再修改下测试类Test 继承C类,实现A,B接口,这里有个注意点,java规范,必须先继承后实现接口

public class test30 extends C implements A,B{

	@Override
	public void a() {
		System.out.println("方法a");
	}
	
	@Override
	public void b() {
		System.out.println("方法b");
		
	}
	
	public static void main(String[] args) {
		test30 t=new test30();
		t.a();
		t.b();
		t.c();
		System.out.println(A.TITLE);
		System.out.println(B.TITLE2);
	}
}

运行结果
在这里插入图片描述
4.接口的继承
接口可以多继承

定义一个D接口 继承A,B接口

public interface D extends A,B{
	//抽象方法
	public abstract void d();
}

重新建一个测试方法 继承C类,实现D接口

public class test31 extends C implements D{

	@Override
	public void a() {
		System.out.println("方法a");
		
	}

	@Override
	public void b() {
		System.out.println("方法b");
		
	}

	@Override
	public void d() {
		System.out.println("方法d");
		
	}
	
	public static void main(String[] args) {
		test31 t=new test31();
		t.a();
		t.b();
		t.c();
		t.d();
		System.out.println(A.TITLE);//接口名.常量
		System.out.println(t.TITLE2);//类名.常量
	}
}

运行结果
在这里插入图片描述

1.接口也不能实例化,但也可以通过父类的引用指向子类的对象
2.调用常量即可类名.常量,也可接口.常量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值