Java-接口,接口与类的区别

一、 接口

Java里面由于不允许多重继承,所以如果要实现多个类的功能,则可以通过实现多个接口来实现,java接口和java抽象类代表的就是抽象类型,就是我们需要提出的抽象层的具体表现 OOP面向对象编程,如果要提高程序的复用性,增加程序的可维护性,可扩展性,就必须是面向接口编程,面向抽象的变成,正确的使用接口/抽象类这些抽象类型作为java结构层次上的顶层

1.1 接口格式:interface 接口名 {代码…}

接口实现类格式:class 接口名Impl implements 接口名{代码。。。}

1.2特点:

1》接口中的都是抽象方法
              2》通过interface关键字来定义接口
              3》通过implements让子类来实现接口
              4》可以理解成,接口是一个特殊的抽象类(接口里的方法都是抽象方法)	
              5》接口突破了java单继承的局限性
              6》接口和类之间可以多实现,接口与接口之间可以多继承
              7》接口是对外暴露的规则,是一套开发规范
              8》接口提高了程序的功能拓展,降低了耦合性

1.3用法:

1.接口里没有构造方法,在创建实现类的对象时默认的super(),是调用的默认的objext的无参构造
	         2.接口里没有成员变量,都是常量。所以,你定义一个变量没有加上修饰符时,默认会加上:public static final
			        int age=10;----->static final int age =10;
			 3.接口里的方法,默认就是抽象类,如果你不写明是abstract的,那会自动补齐
                    void eat();------>public abstract void eat(); 
             4.如果接口中添加了抽象方法,实现类中需要实现所有未实现的抽象方法

总结

1.类与类的关系-----继承关系,只支持单继承
	               ----比如,A是子类 B是父类,A具备B所以的功能(除了父类的私有资源)
   	               ----子类如果要修改原有资源,需要重写(方法签名与父类一致+权限修饰符>=父类修饰符)
	 
	2.类与接口的关系----实现关系,可以单实现,也可以多实现
	                ----class A implements B,C{}
					----其中A是实现类,B,C是接口,A拥有BC接口的所以功能,只是需要进行方法的重写,否则A就是抽象类
					
	3.接口与接口的关系---是继承,可以单继承,也可以多继承
                      ---interface A extends B,C{}
                      ---其中ABC都是接口,A是子接口,具有BC接口的所有功能(抽象方法)
                      ---class X implements A{}
                      ---X实现类需要重写ABC接口的所以方法,否则就是抽象类

                    -----class A extends B implements C,D{}
                    -----其中A是实现类,也是B的子类,同时拥有CD接口的所有功能呢
                    -----这是A需要重写CD接口里的所有抽象方法

    4.抽象类与接口的区别
        ----抽象类是一个特殊的类,特殊在,抽象类中可以包含没有方法体的方法(抽象方法)
        ----接口可以理解成一个特殊的抽象类,特殊在,接口里都是抽象方法,没有普通方法
        ----接口回味方法自动拼接public abstract,还会为变量自动拼接Public final static
        ----抽象类可以有构造方法--用来给子类创建对象,接口中没有构造方法
        ----抽象类和接口都不能实例化(创建对象),如果要实例化,抽象类变量必须指向实现所有抽象方法的子类,接口变量必须指向实现所有接口方法的类对象
        ----抽象类可以有普通方法,接口都是抽象方法
        ----抽象类要被子类继承,接口要被子类实现
        ----接口只能做方法声明,抽象类可以做方法声明,也可以做方法实现
经验分享 程序员 微信小程序 职场和发展