烟雨江南zuo

导航

抽象类和接口

抽象类

修饰符abstract

package com.kuang.oop.Demo10;
//抽象类
public abstract class Action {
    //抽象方法,只有方法名,没有具体实现;通过子类实现
    public abstract void run();

    //正常方法
    public void speak(){
        System.out.println("speak");
    }

}
==========================================================
public class Run extends Action{
    //子类继承抽象类,需要实现其抽象方法
    @Override
    public void run() {
        System.out.println("run");
    }
}

注意

  1. 抽象类只是一种约束,不能通过new来实例化,需要通过子类实现它
  2. 抽象类中可以写普通方法
  3. 抽象方法必须写在抽象类中,子类继承抽象类时,必须实现父类的抽象方法
  4. 类是单继承,接口可以实现多继承

接口

接口的本质

接口是一种规范,使代码的约束和具体实现相分离,提高开发效率

类和接口

  • 普通类:只有具体的实现
  • 抽象类:abstract,有抽象的方法,也可以有具体的实现
  • 接口:interface,只有抽象的定义、规范
package com.kuang.oop.Demo10;
//关键字:interface
public interface UserService {
    //接口中定义的常量默认是全局,public static final,一般不会在接口中这样使用
    int AGE=10;
    //接口定义的方法默认是public abstract
    void speak();

    void eat(String food);
}

public interface TimeService {
    void time();
}

=============================================================
//接口可多继承
public class UserServiceImpl implements UserService,TimeService{
    
    @Override
    public void time() {
       	//具体实现 
    }

    @Override
    public void speak() {
		//具体实现
    }

    @Override
    public void eat(String food) {
		//具体实现
    }
}

接口总结

  1. 接口是抽象的约束
  2. 接口定义一些方法,让不同的人去实现
  3. 接口中定义常量,默认是public static final
  4. 接口中定义方法,默认是public static
  5. 接口没有构造器,无法被实例化
  6. 接口实现类,通过implements可对单个或多个接口进行实现,重写接口方法

posted on 2021-02-14 22:47  烟雨江南zuo  阅读(25)  评论(0编辑  收藏  举报