java基础第十天 接口

来源:互联网 发布:室内定位 指纹算法 编辑:程序博客网 时间:2024/06/06 08:48
#1、接口


##1.1接口定义:  
 1、java中就接口是通过关键字interface来表示的  
interface 接口名  
 2、java中实现接口是通过关键字implements表示的  
  class 类名 implements 接口名  
 3、接口不能实例化,如果要实例化,是需要通过多态是实例化  
  接口名 变量名= new 实现类  


##1.2接口的特点:


1、定义的方法默认是抽象方法
默认使用:public abstract
建议自己给出
 2、定义的变量,都是常量
  默认使用 public final static 


 3、接口里不能定义构造方法


##1.3接口的继承


接口可以多重继承
格式:
接口名 extends 接口1,接口2


##1.4接口的实现
接口的实现类必须实现接口的所有方法


注意:一个类可以继承一个类,同时实现多个接口
子类 extends 父类 implements 接口1,接口2
 * 


#2接口和抽象类的区别:


1、成员区别


抽象类:
成员变量:变量,常量
成员方法:抽象方法,普通方法
构造方法:可有,用于子类初始化父类属性
接口:
成员变量:常量
成员方法:默认是抽象方法
构造方法:没有
2、关系区别:


类与类:
只能单继承
类与接口:
可以有单实现,多实现
接口与接口:
可以有单继承,多继承

3、开发过程中,建议使用接口(先在都强调的是面向接口编程)


#2、返回值类型


返回值类型:
基本类型:较为简单,不讲
引用类型
类 数组 枚举 接口




如果返回类型是引用类型
普通类:那就应该返回他自己的实例,或者子类的实例
抽象类:应该返回子类实例
接口:应该返回其实现类

#3、形式参数
基本类型:较为简单,不讲
引用类型
类 数组 枚举 接口




如果形式参数类型是引用类型:
普通类:那就应该返回他自己的实例,或者子类的实例
抽象类:应该返回子类实例
接口:应该返回其实现类
#4、内部类(了解)


##4.1内部类:就把类定义在别的类的内部,此类就叫内部类


根据定义的位置不同,可以分为:  
成员内部类  
局部内部类  


##4.2内部类的成员访问:


外部类访问内部类:需要实例化内部类,才能放访问
内部类访问外部类:可以直接访问


##4.3内部类实例化方式:

非静态内部类
外部类.内部类 变量名 = new 外部类().new 内部类();


静态内部类:
    外部类.内部类 变量名 = new 外部类.内部类();


##4.4局部内部类:
定义在方法内部,或者代码块内部
局部内部类访问局部变量时,需要注意:
局部变量必须是final类型:
因为局部变量随着方法的结束而消失,而对象的引用不会立即消失,所以需要保证局部变量的生命周期。

##4.5匿名内部类(掌握)
定义:其实内部类的简化方式
前提:有类(普通类或抽象类)或者接口
格式:
new 类名或接口(){


//重写方法
}
本质:其实就是继承了某个类或者实现某个接口的子类的匿名对象




开发中使用:


当我们看到一个参数类型是个抽象类或者接口时,就要知道需要传递其子类或实现类
如果这个类的方法仅仅需要调用一次,我们就使用匿名内部类来实现。


interface Inter {
void show();
}

class Outer {
//补齐代码
public static Inter method(){

return new Inter(){

void show(){
System.out.println("HelloWorld");
}

};
}
}

class OuterDemo {
public static void main(String[] args) {
Outer.method().show(); //"HelloWorld"
}
}







原创粉丝点击