Java学习笔记——接口

本文探讨了Java中接口的概念及其作用,强调了接口如何提供多重继承的效果。通过实例展示了如何定义和实现接口,以及接口与抽象类的区别。同时,解释了面向接口编程的重要性,并给出一个描述会唱歌的厨子作为老师的类实现示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接口
有时必须从几个类中派生出一个子类,继承他们所有的属性和方法。但是,Java不支持多重继承。有了接口,就可以得到多重继承的效果
接口(interface)是抽象方法和常量值的定义的集合
从本质上来讲,接口是一种特殊的抽象类,这种抽象类只包含常量和方法的定义,而没有变量和方法的实现
实现接口
class SubClass implements InterfaceA{}
一个类可以实现多个接口,接口也可以继承其他接口

接口的特点:
1.用interface来定义
2.接口中所有成员变量都默认由public static final修饰的
3.接口中所有的方法都默认由public abstract修饰的
4.接口没有构造器
5.接口采用多重继承机制

接口定义举例:

public interface Runner{
int ID=1;    //public statrc final int ID=1;
void start();  //public abstract void start();
public void run();//public abstract void run();
viod stop(); //public abstract viod stop();
}

实现接口的类中必须提供接口中所有的方法的具体实现内容,方可实例化。否则,仍为抽象类。
public abstract class TestInImpl1 implements TestIn {
}
接口的主要用途就是被实现类实现。(面向接口编程)
继承关系类似,接口与实现类之间存在多态性。
定义Java的语法格式:先写extends,后写implements

public class TestInImpl2 extends Person implements TestIn,TestIn1{

	@Override
	public void test() {
		
	}
	@Override
	public void test1() {
		
	}

}

描述会唱歌的厨子是一个老师
public abstract class Person1 {
	int age;
	String name;
	int sex;
	
	public abstract void showInfo();
}

public interface Cooking {  //厨艺的接口
	void fry();//炒菜
}


public interface Sing { //唱歌的接口
	void singing();//唱法
}
/**
 * 描述会唱歌的厨子是一个老师
 * @author zym
 *
 */
public class SCTeacher extends Person1 implements Cooking,Sing{
	String course;//教的科目
	public void setInfo(){
		super.name="小赵";
		super.age=18;
		super.sex=1;
		this.course="数学";
	}

	@Override
	public void showInfo() {
		System.out.println("会唱歌的厨子的老师的信息是:");
		System.out.println(super.age);
		System.out.println(super.name);
		System.out.println(super.sex);
		System.out.println(this.course);	
	}


	@Override
	public void fry() {
		
		System.out.println(super.name+"老师拿手的厨艺是炒菜");
	}


	@Override
	public void singing() {
		
		System.out.println(super.name+"老师擅长美声唱法");
	}
	
}

抽象类是对于一类事物的高度抽象,其中既有属性也有方法
接口是对方法的抽象,也就对一系列动作的抽象
当需要对一类事物抽象的时候,应该是使用抽象类,好形成一个父类
当需要对一系列的动作抽象,就使用接口,需要使用这些动作的类去实现相应的接口即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值