Java接口
一、抽象(abstrcat):
1.抽象的类是new不出来的也就是不能被实例化,只能是子类去实现这个抽象类;
//抽象:关键字 abstract; //我是一个抽象的类 public abstract class Index_Laugh { //我是一个抽象方法 public abstract void abstractmethods(); }
public class Implementation extends Index_Laugh{ //实现类 重写父类的方法 @Override public void abstractmethods() { } }
2.有抽象方法的类,必定是抽象的方法;
//抽象:关键字 abstract; //我是一个抽象的类 public abstract class Index_Laugh { //我是一个抽象方法 public abstract void abstractmethods(); public void add(){ System.out.println("我是正常方法!"); } }
3.抽象类里面可以写普通的方法;
//抽象:关键字 abstract; //我是一个抽象的类 public abstract class Index_Laugh { //我是一个抽象方法 public abstract void abstractmethods(); public void add(){ System.out.println("我是正常方法!"); } }
二、接口(interface):
1. 接口中不能定义成员变量,只能定义成员常量:
成员固定修饰符:public static final
public static final int A = 1;
格式:public static final 数据类型 常量名称 = 值;
2. 接口中抽象方法的定义:
成员固定修饰符:public abstract
public abstract void inter(); public abstract 返回值类型 方法名 (参数列表);
3. 案例:
public interface MyInterFace{ //成员常量 public static final int A = 1; //抽象方法 public abstract void inter(); }
4. 小案例:(随边写的不要在意包哦!)
4.1:目录
4.2:代码:
MyInterFace:
/** * 我是接口,我有一个方法 一个常量 */ public interface MyInterFace { public static final int A=1; public abstract void inter(); }
MyInterFaceImp:
public class MyInterFaceImp implements MyInterFace{ /** * 创建接口实现类 重写接口方法 */ @Override public void inter() { System.out.println("我是抽象方法哦"); } }
MyInterFaceTest:
public class MyInTerFaceTest { public static void main(String[] args) { //创建接口实现类的对象 MyInterFaceImp myInterFaceImp = new MyInterFaceImp(); //调用实现类的方法重写 myInterFaceImp.inter(); //输出接口值 System.out.println(myInterFaceImp.A); } }
4.3:执行结果:
5. 补充:反编译:
①:在对应的class文件目录上直接 cmd -> 回车;
②:直接javap 需要反编译的class文件名;(javap MyInterFace.class);
6. 关键字:接口:interface ;实现:implements
//我是接口 //我体内的所有方法都是抽象的,并且我里面所有的方法也是公共的;public可以省略掉哦;🤣(写上看起来舒服) public interface indexInterface_Laugh { //接口里面可以写常量,但是不推荐!!!!!! //为了好对应数据库 public void ins(); //insert 插入 public void del(); //delete 删除 public void upd(); //update 修改 public void sel(); //select 查询 }
//我是实现类,我要实现indexInterface_Laugh的话就需要重写他的方法 //实现类可以实现多接口的 //例:“public class InterFaceImpl implements interface1,interface2” ,所有的接口方法也需要重写 public class InterFaceImpl implements indexInterface_Laugh{ @Override public void ins() { } @Override public void del() { } @Override public void upd() { } @Override public void sel() { } }
争取摘到月亮,即使会坠落。