package cn.itcast.demo01;
/*public abstract 返回值类型 方法名称(参数);
固定关键字
* */
public interface MyInterfaceAbstract {
//这是一个抽象方法
public abstract void methodAbs1();
}
package cn.itcast.demo01;
public class MyInterfaceAbstractImpl implements MyInterfaceAbstract {
@Override
public void methodAbs1() {
System.out.println("这是一个方法~");
}
}
package cn.itcast.demo01;
/*接口是多个类的公共规范
* 接口是引用数据类型
* 最重要的内容是抽象方法
* public interface 接口名称(大驼峰){
* //内容
* 可包含内容为
* 1 常量
* 2 抽象方法
* 3 默认方法
* 4 静态方法
* 5 私有方法
* }
*接口使用步骤
* 1.不能直接使用,必须有一个实现类来实现接口 public class 实现类名称 implements 接口{
* }
* 2.接口的实现类必须重写覆盖接口中的所有抽象方法
* 3.创建实现类的对象进行使用
* */
public class Demo01Interface {
public static void main(String[] args) {
//创建实现类的对象
MyInterfaceAbstract impl = new MyInterfaceAbstractImpl();
impl.methodAbs1();
}
}
静态方法
package cn.itcast.demo01;
/*静态方法的定义*/
public interface MyinterfaceStatic {
public static void methodStatic(){
System.out.println("这是静态方法");
}
}
package cn.itcast.demo01;
/*通过接口名称直接调用其中的静态方法*/
public class Demo02Interface {
public static void main(String[] args) {
MyInterfaceStaticImpl impl = new MyInterfaceStaticImpl();//含默认静态方法
//错误写法
//impl.methodStatic();
//直接通过接口名称调用静态方法
MyinterfaceStatic.methodStatic();
}
}
package cn.itcast.demo02;
/*一个类的直接父类是唯一的,但是一个类可以实现多个接口
若实现类所实现的多个接口中存在重复的抽象方法,只需覆盖重写一次即可
若实现类没用覆盖重写所有接口中的所有抽象方法,则实现类必须是抽象类
* */
public class Demo01Interface {
}
package cn.itcast.demo02;
public interface MyInterface2 {
public abstract void methodA();
public abstract void methodAbs();
}
}
package cn.itcast.demo02;
public interface MyInterface1 {
public abstract void methodB();
public abstract void methodAbs();
}
package cn.itcast.demo02;
public class MyInterfaceImpl implements MyInterface1,MyInterface2 {
@Override
public void methodB() {
System.out.println("覆盖重写A方法");
}
//覆盖重写一次即可
@Override
public void methodAbs() {
System.out.println("覆盖重写了AB接口都有的抽象方法");
}
//实现不同的接口
@Override
public void methodA() {
System.out.println("覆盖重写B方法");
}
}