java接口interface

例子1

/**
 * 
 */
package com.atguigu.java1;

/**
 * @Descripton
 * @author wsf  Email:2181821498@qq.com
 * @version
 * @date 2021年10月19日下午5:02:07
 *
 */
public class InterfaceTest {
	public static void main(String[] args) {
		System.out.println(Flyable.MAX_SPEED);
		System.out.println(Flyable.MIN_SPEED);
	}
}

interface Flyable{
	
	//全局常量  下面这些都是全局常量
	public static final int MAX_SPEED = 7900;
	int MIN_SPEED = 1;		//这个是省略掉public static final的
	
	//抽象方法
	public abstract void fly();
	
	//省略public abstract
	void stop();
	
	
}

例子2

/**
 * 
 */
package com.atguigu.java1;

/**
 * @Descripton
 * @author wsf  Email:2181821498@qq.com
 * @version
 * @date 2021年10月19日下午5:02:07
 *
 */
public class InterfaceTest {
	public static void main(String[] args) {
		System.out.println(Flyable.MAX_SPEED);
		System.out.println(Flyable.MIN_SPEED);
		
		//下面这个就是实现类可以实例化
		Plane plane = new Plane();
		
		plane.fly();
		plane.stop();
		
		
	}
}

interface Flyable{
	
	//全局常量  下面这些都是全局常量
	public static final int MAX_SPEED = 7900;
	int MIN_SPEED = 1;		//这个是省略掉public static final的
	
	//抽象方法
	public abstract void fly();
	
	//省略public abstract
	void stop();
	
}

class Plane implements Flyable{


	//*** 这个就是实现类覆盖了接口中的所有方法
	public void fly() {
		System.out.println("通过引擎起飞");
		
	}


	public void stop() {
		System.out.println("驾驶员减速停止");
		
	}
	
	
	
}



例子3

/**
 * 
 */
package com.atguigu.java1;

/**
 * @Descripton
 * @author wsf  Email:2181821498@qq.com
 * @version
 * @date 2021年10月19日下午5:02:07
 *
 */
public class InterfaceTest {
	public static void main(String[] args) {
		System.out.println(Flyable.MAX_SPEED);
		System.out.println(Flyable.MIN_SPEED);
		
		//下面这个就是实现类可以实例化
		Plane plane = new Plane();
		
		plane.fly();
		plane.stop();
		
		
	}
}

interface Flyable{
	
	//全局常量  下面这些都是全局常量
	public static final int MAX_SPEED = 7900;
	int MIN_SPEED = 1;		//这个是省略掉public static final的
	
	//抽象方法
	public abstract void fly();
	
	//省略public abstract
	void stop();
	
}

interface Attackable{
	
	public abstract  void attack();
	
}

class Plane implements Flyable{


	//*** 这个就是实现类覆盖了接口中的所有方法
	public void fly() {
		System.out.println("通过引擎起飞");
		
	}


	public void stop() {
		System.out.println("驾驶员减速停止");
		
	}
}

//可以实现多个接口
class Bullet implements Flyable,Attackable{


	public void fly() {
		// TODO Auto-generated method stub
		
	}


	public void stop() {
		// TODO Auto-generated method stub
		
	}



	public void attack() {
		
		
	}
	
	
	
	
}

例子4

/**
 * 
 */
package com.atguigu.java1;

/**
 * @Descripton
 * @author wsf  Email:2181821498@qq.com
 * @version
 * @date 2021年10月19日下午5:02:07
 *
 */
public class InterfaceTest {
	public static void main(String[] args) {
		System.out.println(Flyable.MAX_SPEED);
		System.out.println(Flyable.MIN_SPEED);
		
		//下面这个就是实现类可以实例化
		Plane plane = new Plane();
		
		plane.fly();
		plane.stop();
		
		
	}
}

interface Flyable{
	
	//全局常量  下面这些都是全局常量
	public static final int MAX_SPEED = 7900;
	int MIN_SPEED = 1;		//这个是省略掉public static final的
	
	//抽象方法
	public abstract void fly();
	
	//省略public abstract
	void stop();
	
}

interface Attackable{
	
	public abstract  void attack();
	
}

class Plane implements Flyable{


	//*** 这个就是实现类覆盖了接口中的所有方法
	public void fly() {
		System.out.println("通过引擎起飞");
		
	}


	public void stop() {
		System.out.println("驾驶员减速停止");
		
	}
}

//****注意下面有2个接口AA,BB,另外CC继承AA,BB,现在Bullet也继承CC,则必须对CC所继承的AA,BB中的方法进行重写
class Bullet extends Object implements Flyable,Attackable,CC{


	public void fly() {
		// TODO Auto-generated method stub
		
	}


	public void stop() {
		// TODO Auto-generated method stub
		
	}



	public void attack() {
		
		
	}



	public void method1() {
		
		
	}



	public void method2() {
		
		
	}
	
	
	
	
}

//************************************************8

interface AA{
	void method1();
	
}

interface BB{
	
	void method2();
}

interface CC extends AA,BB{
	
	
}

例子5

/**
 * 
 */
package com.atguigu.java1;

/*
 * 
 * 
 */
public class UBSTest {
	public static void main(String[] args) {
		Computer com = new Computer();
		
		//1.创建了接口的非匿名实现类的非匿名对象
		Flash flash = new Flash();
		com.transferDate(flash);
		
		//2.创建了接口的非匿名实现类的匿名对象
		com.transferDate(new Printer());
		
		//3.创建了接口的匿名实现类的非匿名对象
		USB phone = new USB(){


			public void start() {
				System.out.println("手机开始工作");
				
			}

	
			public void stop() {
				System.out.println("手机结束工作");
				
			}
			
			
			
		};
		com.transferDate(phone);
		
		//4.创建了接口的匿名实现类的匿名对象
		com.transferDate(new USB(){

			public void start() {
				System.out.println("mp3开始工作");
			}

			public void stop() {
				System.out.println("mp3结束工作");
				
			}
			
			
			
		});
		
	}
}

class Computer{
	
	public void transferDate(USB usb){
		usb.start();
		
		System.out.println("具体传输数据的细节");
		
		usb.stop();
		
	}
	
}


interface USB{
	
	void start();
	
	void stop();
	
}

class Flash implements USB{
	public void start() {
		System.out.println("u盘开启工作");	
	}


	public void stop() {
		System.out.println("u盘结束工作");
	}
}

class Printer implements USB{
	public void start() {
		System.out.println("打印机开启工作");	
	}


	public void stop() {
		System.out.println("打印机结束工作");
	}
	
	
}

例子6

/**
 * 
 */
package com.atguigu.java1;

/*
 *
 *
 *
 */
public class NetWorkTest {
	public static void main(String[] args) {
		
		Server server = new Server();
		ProxyServer proxyServer = new ProxyServer(server);
		proxyServer.browse();
	}
}

interface NetWork{
	
	public void browse();
	
}

//被代理类
class Server implements NetWork{
	
	public void browse(){
		System.out.println("真是的服务器访问网络");
	}
}

//代理类
class ProxyServer implements NetWork{
	
	private NetWork work;
	
	public ProxyServer(NetWork work){
		this.work=work;
	}

	public void check(){
		System.out.println("联网之前的检查工作");
	}

	public void browse() {
		check();
		
		work.browse();
		
	}
	
	
	
}

例子7

CompareObject接口

/**
 * 
 */
package com.atguigu.exer3;

/**
 * @Descripton
 * @author wsf  Email:2181821498@qq.com
 * @version
 * @date 2021年10月19日下午7:17:17
 *
 */
public interface CompareObject {
	public int compareTo(Object o);
}

Circle类

/**
 * 
 */
package com.atguigu.exer3;

/**
 * @Descripton
 * @author wsf  Email:2181821498@qq.com
 * @version
 * @date 2021年10月19日下午7:18:45
 *
 */
public class Circle {
	private Double radius;


	public Double getRadius() {
		return radius;
	}


	public void setRadius(Double radius) {
		this.radius = radius;
	}



	public Circle(Double radius) {
		super();
		this.radius = radius;
	}


	public Circle() {
		super();
	}
	
	
	
}

ComparableCircle类

/**
 * 
 */
package com.atguigu.exer3;

/**
 * @Descripton
 * @author wsf  Email:2181821498@qq.com
 * @version
 * @date 2021年10月19日下午7:20:19
 *
 */
public class ComparableCircle extends Circle implements CompareObject{

	public ComparableCircle(double radius){
		super(radius);
	}

	public int compareTo(Object o) {
		if(this == o){
			return 0;
		}
		if(o instanceof ComparableCircle){
			ComparableCircle c = (ComparableCircle)o;
//			if(this.getRadius()>c.getRadius()){
//				return 1;
//			}else if(this.getRadius()<c.getRadius()){
//				return -1;
//			}else{
//				return 0;
//			}
			return this.getRadius().compareTo(c.getRadius());
		}else{
			return 0;
		}

		
	}
	
}

comparableCircleTest测试类

/**
 * 
 */
package com.atguigu.exer3;

/**
 * @Descripton
 * @author wsf  Email:2181821498@qq.com
 * @version
 * @date 2021年10月19日下午7:29:45
 *
 */
public class comparableCircleTest {
	public static void main(String[] args) {
		ComparableCircle c1 = new ComparableCircle(3.4);
		ComparableCircle c2 = new ComparableCircle(3.6);
		System.out.println(c1.compareTo(c2));
	}
}

例子8

接口CompareA

/**
 * 
 */
package com.atguigu.java8;

/*
 *
 */
public interface CompareA {
	
	//静态方法
	public static void method1(){
		System.out.println("CompareA:北京");
	}
	
	//默认方法
	public default void method2(){
		System.out.println("CompareA: 上海");
	}
	
	default void method3(){
		System.out.println("CompareA:上海");
	}
	
}

SubClassTest类

/**
 * 
 */
package com.atguigu.java8;

/**
 * @Descripton
 * @author wsf  Email:2181821498@qq.com
 * @version
 * @date 2021年10月19日下午8:12:52
 *
 */
public class SubClassTest {

	public static void main(String[] args) {
		SubClass s = new SubClass();
		//接口中定义的静态方法,只能通过接口来调用
		CompareA.method1();
	}
}


class SubClass implements CompareA{
	
	
}

例子9

接口CompareA

/**
 * 
 */
package com.atguigu.java8;

/*
 *
 */
public interface CompareA {
	
	//静态方法
	public static void method1(){
		System.out.println("CompareA:北京");
	}
	
	//默认方法
	public default void method2(){
		System.out.println("CompareA: 上海");
	}
	
	default void method3(){
		System.out.println("CompareA:上海");
	}
	
}

SubClassTest类

/**
 * 
 */
package com.atguigu.java8;

/**
 * @Descripton
 * @author wsf  Email:2181821498@qq.com
 * @version
 * @date 2021年10月19日下午8:12:52
 *
 */
public class SubClassTest {

	public static void main(String[] args) {
		SubClass s = new SubClass();
		//接口中定义的静态方法,只能通过接口来调用
		CompareA.method1();
		//通过实现类的对象,可以调用接口中默认方法
		s.method2();
		s.method3();
	}
}


class SubClass implements CompareA{
	
	
}

例子10

接口CompareA

/**
 * 
 */
package com.atguigu.java8;

/*
 *
 */
public interface CompareA {
	
	//静态方法
	public static void method1(){
		System.out.println("CompareA:北京");
	}
	
	//默认方法
	public default void method2(){
		System.out.println("CompareA: 上海");
	}
	
	default void method3(){
		System.out.println("CompareA:上海");
	}
	
}

SubClassTest类

/**
 * 
 */
package com.atguigu.java8;

/**
 * @Descripton
 * @author wsf  Email:2181821498@qq.com
 * @version
 * @date 2021年10月19日下午8:12:52
 *
 */
public class SubClassTest {

	public static void main(String[] args) {
		SubClass s = new SubClass();
		//接口中定义的静态方法,只能通过接口来调用
		CompareA.method1();
		//通过实现类的对象,可以调用接口中默认方法
		s.method2();
		s.method3();
	}
}


//如果实现类继承的父类和实现的接口中声明了同名同参数的方法,那么子类在没有重写此方法的情况下,默认调用的是父类中同名同参数的方法
class SubClass extends SuperClass implements CompareA{
	
	public void method2(){
		System.out.println("SubClass:上海");
	}
	
}

SuperClass父类

/**
 * 
 */
package com.atguigu.java8;

/**
 * @Descripton
 * @author wsf  Email:2181821498@qq.com
 * @version
 * @date 2021年10月19日下午8:26:27
 *
 */
public class SuperClass {
	//将method3进行重写
	public void method3(){
		System.out.println("SuperClass:wsf");
	}
}

例子11

接口CompareA

/**
 * 
 */
package com.atguigu.java8;

/*
 *
 */
public interface CompareA {
	
	//静态方法
	public static void method1(){
		System.out.println("CompareA:北京");
	}
	
	//默认方法
	public default void method2(){
		System.out.println("CompareA: 上海");
	}
	
	default void method3(){
		System.out.println("CompareA:上海");
	}
	
}

SubClassTest类

/**
 * 
 */
package com.atguigu.java8;

/**
 * @Descripton
 * @author wsf  Email:2181821498@qq.com
 * @version
 * @date 2021年10月19日下午8:12:52
 *
 */
public class SubClassTest {

	public static void main(String[] args) {
		SubClass s = new SubClass();
		//接口中定义的静态方法,只能通过接口来调用
		CompareA.method1();
		//通过实现类的对象,可以调用接口中默认方法
		s.method2();
		s.method3();
	}
}


//如果实现类实现了多个接口,而这多个接口中定义了同名同参数的默认方法,那么在实现类没有重写此方法的情况下,报错----->接口冲突
class SubClass implements CompareA,CompareB{
	
	public void method2(){
		System.out.println("SubClass:上海");
	}
	
	public void method3(){
		
	}
	
}

SuperClass父类

/**
 * 
 */
package com.atguigu.java8;

/**
 * @Descripton
 * @author wsf  Email:2181821498@qq.com
 * @version
 * @date 2021年10月19日下午8:26:27
 *
 */
public class SuperClass {
	//将method3进行重写
	public void method3(){
		System.out.println("SuperClass:wsf");
	}
}

CompareB类

/**
 * 
 */
package com.atguigu.java8;

/**
 * @Descripton
 * @author wsf  Email:2181821498@qq.com
 * @version
 * @date 2021年10月19日下午8:34:38
 *
 */
public interface CompareB {
	default void method3(){
		System.out.println("CompareA:上海");
	}
}

例子12

接口CompareA

/**
 * 
 */
package com.atguigu.java8;

/*
 *
 */
public interface CompareA {
	
	//静态方法
	public static void method1(){
		System.out.println("CompareA:北京");
	}
	
	//默认方法
	public default void method2(){
		System.out.println("CompareA: 上海");
	}
	
	default void method3(){
		System.out.println("CompareA:上海");
	}
	
}

SubClassTest类

/**
 * 
 */
package com.atguigu.java8;

/**
 * @Descripton
 * @author wsf  Email:2181821498@qq.com
 * @version
 * @date 2021年10月19日下午8:12:52
 *
 */
public class SubClassTest {

	public static void main(String[] args) {
		SubClass s = new SubClass();
		//接口中定义的静态方法,只能通过接口来调用
		CompareA.method1();
		//通过实现类的对象,可以调用接口中默认方法
		s.method2();
		s.method3();
		
		s.myMethod();
	}
}

class SubClass extends SuperClass implements CompareA,CompareB{
	
	public void method2(){
		System.out.println("SubClass:上海");
	}
	
	public void method3(){
		System.out.println("SubClass: 深圳");
	}
	
	//知识5:如果在实现类的方法总调用父类,接口中被重写的方法
	public void myMethod(){
		method3();       //调用自己定义的重写的方法
		super.method3();    //调用的是父类中声明的
		CompareA.super.method3();//调用的是接口中的方法
		CompareB.super.method3();
	}
	
}

SuperClass父类

/**
 * 
 */
package com.atguigu.java8;

/**
 * @Descripton
 * @author wsf  Email:2181821498@qq.com
 * @version
 * @date 2021年10月19日下午8:26:27
 *
 */
public class SuperClass {
	//将method3进行重写
	public void method3(){
		System.out.println("SuperClass:wsf");
	}
}

CompareB类

/**
 * 
 */
package com.atguigu.java8;

/**
 * @Descripton
 * @author wsf  Email:2181821498@qq.com
 * @version
 * @date 2021年10月19日下午8:34:38
 *
 */
public interface CompareB {
	default void method3(){
		System.out.println("CompareA:上海");
	}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值