抽象类和接口

抽象类

概念

  抽象方法:只有方法的定义,没有方法体的实现,这种方法就是抽象方法

  定义类抽象方法的类,就是抽象类

 

定义和实现

  抽象类和抽象方法是用abstract关键字定义的: 如:定义抽象类:public abstract class Action {} 定义抽象方法:public abstract void doSomething();

  抽象类中的方法,需要继承这个类的子类来将抽象方法进行重写,使之实现这个方法;

  若子类不想实现父类的抽象方法,只要子类也是抽象类即可;这样的话就要交由它的子子类来实现;

 

注意事项

  1.不能new这个抽象类(抽象类不能被实例化对象),只能通过子类来实现它;

  2.让子类使用extends关键字继承抽象类,让子类实现抽象类中的抽象方法;

  3.在抽象类中可以只定义普通方法,也可以只定义抽象方法;

  4.有抽象方法,这个类一定是抽象类

 

 

接口

概念

  接口就是一组规则,比如:如果”你是飞机,则必须能飞“之类这样的规则;

  接口不关心你如何飞,可以是直升机那么飞,也可以客机那么飞;接口只需要你是飞的,如何飞由实现类来实现;

  接口说了我这个方法是干啥干啥的。但是具体怎么干的,过程是啥?这个就是实现类来解决的问题,实现类来怎么干具体的过程都在实现类。

 

定义

  接口是使用interface关键字来定义的 如:public interface UserService {}

  接口中所有定义的方法都是抽象的,默认是隐藏了:public abstract,如:

  //接口中定义方法
  void run(String name);
  //void run(); = public abstract void run();

  接口中定义的属性都是静态常量,默认是隐藏了:public static final,如:

  //接口中定义属性,都为静态常量
  int AGE = 99;
  //int AGE = 99; = public static final int AGE = 99;

 

实现

  接口的实现是使用implements关键字,让类来实现的,这个类为实现类; 如:public class UserServiceImpl implements UserService {}

  实现类可以实现多个接口,也就是多继承,接口与接口之间使用逗号分隔; 如:public class UserServiceImpl implements UserService,TimeService {}

  实现类中,需要重写接口中的所有方法;

 

注意事项

  1.约束,接口约束了这个方法必须干什么;实现类则是实现这个结果的过程;

  2.定义一些方法,让不同的人实现,不同的人实现,就是不同的过程,提高代码效率;

  3.接口中定义的方法,都是抽象方法;

  4.接口中定义的属性,都是静态常量;

  5.使用implements关键字可以让实现类实现(继承)多个接口;

  6.实现类必须重写接口中的所有方法;

 
posted @ 2023-02-17 23:26  回家太晚太悲催  阅读(27)  评论(0)    收藏  举报