概念
- 类:当多个类中出现完全相同的功能时,将其向上抽取的形成的类(即定义出来用来描述事物共同特性的类)
-
抽象类:当多个类中出现相同的功能,但是功能主体不一样,进行向上抽取形成的抽象类。抽象类是只抽取了功能的定义(即表象含义),但是不抽取功能主体,这时使用关键字abstract对功能进行修饰,以方便代码阅读。同时该类也必须使用abstract关键字修饰,以表示其不可以被实例化对象,因为这样是没有意义的
抽象类例子 - 接口:是一种规范和标准,他们可以约束类的行为,是一些方法特征的集合,但是没有方法的实现,可以理解成一个特殊的抽象类,抽象类中没有非抽象方法可以定义成接口,使用interface定义
特点
- 抽象类:
- 抽象方法必须放在抽象类中
- 抽象类和抽象方法必须使用关键字abstract标识
- 抽象类不可以new对象,因为调用抽象方法没有意义
- 抽象类中的方法要被调用,必须使用子类重写所有的抽象方法,并new子类对象再调用
如果子类没有重写所有的抽象类,那么子类也是一个抽象类
- 接口:
- 使用interface定义
- 接口中常见定义:常量,抽象方法
- 接口中的成员都有固定修饰符:
(1)常量:public static final
(2)方法:public abstract
对象和方法都是public - 不可以实例化对象
- 接口是对外暴露的规则
- 接口是程序的拓展功能
- 接口可以多实现
- 接口可以降低耦合性
类和抽象类的区别:
- 抽象类中可以有抽象方法,也可以有非抽象方法,但类中只有非抽象方法。
-
抽象类不可以实例化,必须通过子类重写抽象方法,再实例化子类对象进行调用
类和抽象类的区别
类和接口的区别:
- 抽象类有利于代码复用,接口利于代码的扩展和维护
- 用interface定义接口,用class定义类/抽象类
- 接口中只有抽象类方法
- 类和类之间的是继承(extends),不可以多继承,只能多层继承;而类和接口之间是实现(implements),可以多实现接口;接口与接口之间是继承(extends),但可以多继承
网友评论