Java教程

Java语言第四章——接口

本文主要是介绍Java语言第四章——接口,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

接口

我们都知道在Java中一个子类只能继承一个父类,当一个子类拥有多个父类时我们该怎么办呢?这时Java就引入了接口的概念。接口由关键字interface定义,语法如下:

[访问修饰符]interface 接口名 [extends 父接口1,父接口2---]

注意:

  1. 关于接口的访问修饰符,可以是public和缺省修饰符,如果省略public修饰符,系统默认使用缺省访问修饰符。
  2. 接口中只能定义共有的,静态的常量,并且这些常量默认都是共有的,静态的,终极的。
  3. 接口中的方法只能是共有的抽象方法,并且这些方法默认都是共有的,抽象的。
  4. 接口只能继承多个接口,接口不能继承类,也不能实现其他接口。

接口和抽象类的区别:
相同点:

  1. 接口和抽象类都不能被实例化。
  2. 接口和抽象类都可以包含抽象方法。

不同点:

  1. 接口中只能包含抽象方法,而抽象类则完全可以包含普通方法。
  2. 接口中不能定义静态方法,而抽象类中可以定义静态方法。
  3. 接口只能定义静态常量,不能定义普通变量或非静态的常量,而抽象类中则可以定义不同的属性,也可以定义静态的属性。
  4. 接口中不包含构造器,而抽象类中可以包含构造器。
  5. 一个类最多只能有一个父类,包括抽象类,而一个类可以实现多个接口。

实例:
(1)创建食物接口(Food),该接口被所有的食物类所实现。在该接口中定义getFood()方法。
(2)创建麦香鸡类(McChicken) ,该类实现Food接口,并重写Food接口的getFood)方法。
(3)创建薯条类(Chips) ,该类实现Food接口,并重写Food接口的getFood)方法。
(4)创建生产食品的工厂类(FoodFactory) ,在该类中定义静态方法createFood(String type)方法,在该方法中通过传入该方法参数的字符串值,判断用户需要何种食物,如果工厂中有该食物,则创建该食物对象,否则给出友好提示信息。参考代码如下:

package com.zuoye;

public interface Food {
void getFood();
}
package com.zuoye;

public class McChicken implements Food{

	@Override
	public void getFood() {
		System.out.println("来一份麦辣鸡块");
		
	}

}
package com.zuoye;

public class Chips implements Food{

	@Override
	public void getFood() {
		System.out.println("来一份薯条");
		
	}

}
package com.zuoye;

public class FoodFactory {
	public static Food createFood(String type) {
		
		if(type.equals("mcchicken")) {
			return new McChicken();
		}else if(type.equals("chips")) {
			return new Chips();
		}else {
			System.out.println("对不起,没有该食物");
			return null;
		}
	}
}
package com.zuoye;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
Food mcchicken=FoodFactory.createFood("mcchicken");
mcchicken.getFood();
Food chips=FoodFactory.createFood("chips");
chips.getFood();
	}

}

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

这篇关于Java语言第四章——接口的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!