Java中的接口

接口(interface)可以实现多重继承的效果
(几个类共同派生出一个子类,该子类继承了所有父类的属性和方法
接口是抽象方法和常量值的集合,从本质上讲,接口是一种特殊的抽象类,这种抽象类只包含常量和方法的定义,而没有常量和方法的实现,一个类可以实现多个接口,接口也可以继承其他接口;
接口的特点:
接口用interface定义,所有成员变量默认由public static final修饰,所有方法默认用public abstract修饰,接口没有构造器,采用多层继承机制;
一个类可以继承多个接口:

public interface Testin {
       int ID = 1;//等同于public static final int ID = 1;
       void test();//等同于public abstract
}
public interface Testin1 {
       void test1();
}
public class TestInmpl implements Testin,Testin1 {
	@Override
	public void test() {
	}
	@Override
	public void test1() {
	}   
}

接口可以继承接口:

public interface Testin2 extends Testin,Testin1{ 
}

实现接口的类中必须提供接口中所有方法的具体实现内容,才可以实例化这个类,否则这个类是一个抽象类;
如果一个类既要继承父类,也要实现接口,要按照先继承后实现的顺序。
为什么要引入接口呢?引入接口的目的就是如果我们想在父类中添加一些方法,但是父类已经有了很多子类,盲目的修改父类会带来很多的麻烦,这时我们可以定义一个接口,让将需要增加的方法写进接口,然后让需要增加方法的子类去实现这个接口,避免盲目扩充父类造成不必要的影响。

public interface Cooking {
       void fry();
}
public interface Sing {
       void sing();
}

这是两个接口,分别有一个抽象方法。

public abstract class Person1 {
       String name;
       int age;
       String sex;
       public abstract void Info();
}

这是一个抽象类,抽象类是对于一类事物的抽象,其中既有属性也有方法;接口是对方法的抽象,也就是对一系列动作的抽象。

class Teacher extends Person1 implements Cooking,Sing{
//继承了抽象类Person1,实现了接口Cooking和Sing
     String course;
     public void setInfo(){
    	 super.name = "张三";
    	 super.age = 22;
    	 super.sex = "男";
    	 this.course = "语文";
     }
     //重写了两个接口中的抽象方法
	@Override
	public void sing() {
		System.out.println("会唱歌");
	}
	@Override
	public void fry() {
		System.out.println("会炒菜");
	}
	//重写抽象类中的抽象方法
	@Override
	public void Info() {
		System.out.println("这是一个会唱歌又会炒菜的老师,下面是老师的信息");
		System.out.println("姓名:"+super.name);
		System.out.println("年龄:"+super.age);
		System.out.println("性别:"+super.sex);
		System.out.println("课程:"+this.course);
	}
}
	   Teacher t = new Teacher();//测试
	   t.sing();
	   t.fry();
	   t.setInfo();
	   t.Info();

可以使用接口接收引用对象(相当于父类),Cooking c = new Teacher();创建的引用对象c已经转换为Cooking类型,只能调用Cooking中的方法,体现了对象的多态性;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值