接口 interface 接口的多继承 implements实现 抽象和接口的异同点

interface

接口:初期理解,可以认为是一个特殊的抽象类。

当抽象类中的方法都是抽象的,那么该类可以通过接口的形式表示。

作用:功能扩展!

class  用于定义类 

接口定义时,格式特点:

1接口中常见定义:常量,抽象方法;

2接口中的成员都是有固定修饰符。

常量:public static final

方法:public abstract

记住:接口中的成员都是public的。


接口是不可以创建对象的,因为有抽象方法。

需要被子类实现,子类对接口中的抽象发放全部都覆盖后,子类才可以实例化。

否则子类是个抽象类。

interface Inter
{
	public static final int NUM=3;
	public abstract void show();
}

class Test implements Inter
{
	public void show(){}
}


class InterfaceDemo
{
	public static void main (String []args)
	{
		Test t =new Test();
		System.out.println(t.NUM);
		System.out.println(Test.NUM);
		System.out.println(Inter.NUM);
		
		//  X  t.Num = 4  错误,NUM是常量,不能赋值!
	}
}

接口可以被类多实现

是对多继承不支持的转换形式,java支持多实现。(一个类可以同时实现多个接口)


多继承(接口与接口的情况下)

java不支持多继承,但是在接口与接口的情况下,支持多继承!

在类中,以多实现的方法体现出来。


继承 和 接口在多继承上的差异原因

继承:没有多继承,因为父类中肯能存在同名的多个方法,会导致子类调用的不确定。

接口:有多继承,因为父类方法中,没有方法体,只有方法定义,所以重复没有关系。

interface A
{
	void methodA();
}

interface B 
{
	void methodB();
}

interface C extends B,A  //接口与接口情况下的 多继承
{
	void methodC();
}

class D implements C	//多实现方法体现
{
	public void methodA(){};
	public void methodB(){};
	public void methodC(){};
}

implements 实现

interface A
{
	public void show();
}

interface Z
{
	public int add(int a,int b);
}




class Test implements A,Z//多实现
{
	
	public int add(int a,int b)
	{
		return a+b+3;	
	}
	/**/
	public void show(){}
	
}

抽象类和接口的异同点:

相同点
都是不断向上抽取而来的。
不同点
1,抽象类需要被继承,而且只能单继承。
  接口需要被实现,而且可以多实现。 
2,抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法。
  接口中只能定义抽象方法,必须由子类去实现。 
3,抽象类的继承,是is a关系,在定义该体系的基本共性内容。
接口的实现是 like a 关系,在定义体系额外功能

abstract class Student
{
	abstract void study();
	void sleep()
	{
		System.out.println("sleep");
	}

}
interface Smoking
{
	void smoke();
}
	
class ZhangSan extends Student implements Smoking
{
	void study(){}
	public void smoke(){}
}

class Lisi extends Student
{
}

class  
{
	public static void main(String[] args) 
	{
		System.out.println("Hello World!");
	}
}

abstract class Sporter
{
	abstract void paly();
}
interface study
{
}
class WangWu extends Sporter implements study
{
	public void play(){}
}



class  demo
{
	public static void main(String[] args) 
	{
		System.out.println("Hello World!");
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值