java基础——接口
2017-09-18 22:57
127 查看
1、在java中,接口是一种标准、规范。
2、格式:[修饰符]
interface 接口名{}
3、特点:
① 没有构造方法,不能实例化。
② 接口只能继承接口,不能继承类,且接口支持多继承。
一个接口允许有多个父接口。
Eg: interface IWalkable extends
接口1,接口2{}
③ 接口里的全是抽象方法,默认修饰符是public abstract。
④ 接口里的字段全是全局静态常量,默认修饰符是public static final。
⑤ 接口里的是静态的内部类,默认修饰符是public static。
4、接口和抽象类:
1) 相同点:
(a) 都位于继承的顶端,用于被其他实现或继承。
(b) 都不能实例化。
(c) 都可以定义抽象方法,其子类都必须覆写这些抽象方法。
2) 区别:
(a) 接口没有构造方法,抽象类有构造方法。
(b) 抽象类可包含普通方法和抽象方法,接口只能包含抽象方法;
(c) 一个类只能继承一个直接父类(可能是抽象类),却可以实现多个接口(接口弥补了Java的单继承)。
(d) 变量:接口里默认是public static final,抽象类是默认包权限。
(e) 方法:接口里默认是public abstract,抽象类默认是默认包访问权限。
(f) 内部类:接口里默认是public static,抽象类默认是默认包访问权限。
二者的选用:优先选用接口,尽量少用抽象类。若需要定义子类的行为,又要为子类提供共性功能时选用抽象类。
5、实现类的语法
public class
实现类 extends 父类 implements 接口1,接口2
1) 实现类实现接口之后,必须覆盖掉接口中所有的抽象方法,否则,该实现类只能作为抽象类。
2) 实现类和接口之间的关系--->实现关系,是一种特殊的继承关系。
3) 实现类覆盖接口中的方法,一般的称之为 实现。
6、代码:
class Test3
{
public static void main(String[] args)
{
Computer pc = new Computer();
pc.connectPC();
System.out.println(pc.WIDTH);
pc.connectNet();
}
}
interface USB
{
public static final int WIDTH = 15;
public static final int HEIGHT = 5; //全局静态变量
public abstract void connectPC(); //抽象方法
}
interface Net
{
int COUNT = 8; //接口中可以简写: public static final int COUNT = 8;
void connectNet(); //public abstract void connectNet();
}
//implements: 实现接口
class Computer implements USB,Net
{
public void connectPC(){
System.out.println("链接成功!!");
}
public void connectNet(){
System.out.println("成功上网!!");
}
}
7、总结:
1)一个类可以实现多个接口;
2)Java中继承只能单继承,实现类可以同时实现多个接口;
3)Java中接口支持多继承。
4)在实际开发中,既可以用抽象类又可以用接口的话,就使用接口,因为接口可以多实现,可以解耦(降低耦合度),避免了单继承的局限。
2、格式:[修饰符]
interface 接口名{}
3、特点:
① 没有构造方法,不能实例化。
② 接口只能继承接口,不能继承类,且接口支持多继承。
一个接口允许有多个父接口。
Eg: interface IWalkable extends
接口1,接口2{}
③ 接口里的全是抽象方法,默认修饰符是public abstract。
④ 接口里的字段全是全局静态常量,默认修饰符是public static final。
⑤ 接口里的是静态的内部类,默认修饰符是public static。
4、接口和抽象类:
1) 相同点:
(a) 都位于继承的顶端,用于被其他实现或继承。
(b) 都不能实例化。
(c) 都可以定义抽象方法,其子类都必须覆写这些抽象方法。
2) 区别:
(a) 接口没有构造方法,抽象类有构造方法。
(b) 抽象类可包含普通方法和抽象方法,接口只能包含抽象方法;
(c) 一个类只能继承一个直接父类(可能是抽象类),却可以实现多个接口(接口弥补了Java的单继承)。
(d) 变量:接口里默认是public static final,抽象类是默认包权限。
(e) 方法:接口里默认是public abstract,抽象类默认是默认包访问权限。
(f) 内部类:接口里默认是public static,抽象类默认是默认包访问权限。
二者的选用:优先选用接口,尽量少用抽象类。若需要定义子类的行为,又要为子类提供共性功能时选用抽象类。
5、实现类的语法
public class
实现类 extends 父类 implements 接口1,接口2
1) 实现类实现接口之后,必须覆盖掉接口中所有的抽象方法,否则,该实现类只能作为抽象类。
2) 实现类和接口之间的关系--->实现关系,是一种特殊的继承关系。
3) 实现类覆盖接口中的方法,一般的称之为 实现。
6、代码:
class Test3
{
public static void main(String[] args)
{
Computer pc = new Computer();
pc.connectPC();
System.out.println(pc.WIDTH);
pc.connectNet();
}
}
interface USB
{
public static final int WIDTH = 15;
public static final int HEIGHT = 5; //全局静态变量
public abstract void connectPC(); //抽象方法
}
interface Net
{
int COUNT = 8; //接口中可以简写: public static final int COUNT = 8;
void connectNet(); //public abstract void connectNet();
}
//implements: 实现接口
class Computer implements USB,Net
{
public void connectPC(){
System.out.println("链接成功!!");
}
public void connectNet(){
System.out.println("成功上网!!");
}
}
7、总结:
1)一个类可以实现多个接口;
2)Java中继承只能单继承,实现类可以同时实现多个接口;
3)Java中接口支持多继承。
4)在实际开发中,既可以用抽象类又可以用接口的话,就使用接口,因为接口可以多实现,可以解耦(降低耦合度),避免了单继承的局限。
相关文章推荐
- java语言基础(39)——面向对象(接口的引入及特点)
- java基础案例:继承父类并实现接口
- Java基础笔记-继承、抽象类、接口、多态、内部类、异常
- java基础之抽象类与接口的形式参数和返回值
- java基础接口练习
- JAVA_SE基础——47.接口
- Java基础--接口和抽象类
- 黑马程序员——java基础(面向对象)抽象、接口、内部类
- 黑马程序员 Java基础<三>---> 抽象类、与接口
- JAVA基础之接口
- Java基础进阶_day03_(抽象类,接口,多态)
- Java基础-类-接口interface-package-import.
- Java基础学习笔记(七)Set接口及其实现子类
- Java基础--继承、抽象、接口
- java基础_03_接口
- Java基础知识强化之网络编程笔记25:Android网络通信之 Future接口介绍(Java程序执行超时)
- 【Java基础】抽象类和接口的区别
- Android基础之Java接口
- C\C++ 程序员从零开始学习Android - 个人学习笔记(八) - java基础 - 继承、抽象类、接口、内部类(待续)
- java基础—接口与抽象类的区别