面向对象
接口(Interface)是用来定义行为的!
抽象类(Abstract Class)是用来实现行为的!
具体类()是用来执行行为的!
Leemaasn 讲的不错,我来补全一下
支持多重继承, 支持抽象函数, 允许实现 ,允许创建实体,允许部分实现
interface 支持 支持 不允许 不允许 不允许
abstract class不支持 支持 允许 不允许 允许
class 不支持 不支持 允许 允许 不允许
所以打算多继承,又并不想马上实现它的时候,就用接口。需要实现它的类需要。比如我上述例子中的Print(),,通常对应多个实现类的。(记得所有的方法都必须是public的,也可以用有static final)
如果只需要实现部分的部分方法,又不需要全部实现,那就可以用抽象类。对于抽象方法,需要overrider 就是要重写一个方法来实现 所定义好的abstract 方法。(这个和接口一样)
如果全部实现,又全部要执行的。。那么就用直接类吧,父子关系一带被调用它的时候,比如子类继承了父类的方法时候,一调用就执行了。
面向对象的本质:万物皆对象!
封装:封装就是指利用抽象数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象类型的内部,系统的其他部分只有通过包裹在数据外面的被授权的操作,才能够与这个抽象数据类型交流与交互!
继承:继承实际上是存在于面向对象程序中的两个类之间的关系。当一个类拥有另一个类的所有数据和操作时,就称这两个类之间具有继承关系!
多态:多态是指一个程序中同名的不同方法共存的情况。面向对象的程序中多态的情况有多种,可以通过子类对父类方法的覆盖实现多态,也可以利用重载在同一个类中定义多个同名的不同方法!