JAVA基础学习
2019年02月15日
原文
1、接口概述接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成。这样将功能的定义与实现分离,优化了程序设计。请记住:一切事物均有功能,即一切事物均有接口。 2、接口定义接口定义时需要使用interface关键字定义格式:public interface .
1、接口概述
接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成。这样将功能的定义与实现分离,优化了程序设计。
请记住:一切事物均有功能,即一切事物均有接口。
2、接口定义
接口定义时需要使用interface关键字
定义格式:
public interface 接口名 {
抽象方法1;
抽象方法2;
抽象方法3;
}
使用interface代替了原来的class,其他步骤与定义类相同:
l 接口中的方法均为公共访问public的抽象方法
l 接口中无法定义普通的成员变量
3、接口中成员变量的定义
要求:必须定义为常量
固定格式:
Public static final 数据类型 变量名 = 值;
4、类与接口的关系
实现关系
定义类:实现接口,重写接口中的抽象方法
类实现接口,可以理解为继承
关键字 implements
称为接口的实现类
Class 类 implements 接口{
重写接口中的抽象方法
}
PS:只能创建接口的实现类的对象,不能创建接口的对象
/*
- 定义接口
- 使用关键字interface 接口名字
- 接口定义:
- 成员方法,全抽象
- 不能定义带有方法体的方法
- 定义抽象方法: 固定格式
- public abstract 返回值类型 方法名字(参数列表);
- 修饰符 public 写,或者不写,都是public
- 接口中成员变量的定义
- 成员变量的定义,具体要求
- 要求 : 必须定义为常量
- 固定格式:
- public static final 数据类型 变量名 = 值
*/
public interface MyInterface {
//public static final int a = 1; //在接口中,定义抽象的方法 public abstract void function();
}
================================================
/*
- 定义类, 实现接口,重写接口中的抽象方法
- 创建实现类的对象
- 类实现接口, 可以理解为继承
- 关键字 implements
- class 类 implements 接口{
- 重写接口中的抽象方法
- }
- 类 实现 接口
- class MyInterfaceImpl implements MyInterface
*/
public class MyInterfaceImpl implements MyInterface{
public void function(){ System.out.println("实现类,重写接口抽象方法"); }
}
=================================================
测试
public class Test {
public static void main(String[] args) { //创建接口的实现类的对象 MyInterfaceImpl my = new MyInterfaceImpl(); my.function(); }
}
5、接口中成员变量的特点
6、接口中成员方法的特点
/*
- 接口中成员的特点
-
- 成员变量的特点, 没有变量,都是常量
- 固定定义格式: public static final 数据类型 变量名 = 值
- public 权限
- static 可以被类名直接.调用
- final 最终,固定住变量的值
- // * 注意: public static final 修饰符,在接口的定义中,可以省略不写
- 但是,不写不等于没有
- 三个修饰符,还可以选择性书写
-
- 接口中的成员方法特点:
- public abstract 返回值类型 方法名(参数列表)
- 修饰符 public abstract 可以不写,选择性书写
- 但是,写不写,都有
-
- 实现类,实现接口,重写接口全部抽象方法,创建实现类对象
实现类必须重写所有抽象方法,才能定义类对象,否则仍然是抽象类
- 实现类,实现接口,重写接口全部抽象方法,创建实现类对象
- 实现类,重写了一部分抽象方法,实现类,还是一个抽象类
*/
public interface MyInter {
public static final int x = 3; public abstract void show(); public abstract int getSum(int a,int b);
}