1.抽象类
(1)定义抽象类:
当一个被定义为抽象类是,它可以包含各种类型的成员,包括属性、方法等,其中方法又可分为普通方法和抽象方法,抽象类结构如下:
public abstract class 类名称{
修饰符 abstrract 返回值类型 方法名();
修饰符 返回值类型 方法名(){
方法体
}
}
注:抽象方法只能定义在抽象类中,但是抽象类中可以包含抽象方法,也可以包含普通方法,但是普通类中只能包含普通方法
(2)抽象类和抽象方法优势:
抽象类中已经实现的方法可以被其子类使用,使代码被复用;同时提供了抽象方法,保证子类具有自身的独特性
2.接口:
定义一个简单接口:
public interface 接口名{
接口成员
}
注:定义接口使用abstract修饰符,访问修饰符只能是public,接口成员可以是全局变量和公共类的抽象方法;
使接口必须通过子类,子类通过implement关键字实现接口。
3.抽象类和接口相同点和不同点:
相同点:都代表系统的抽象化;
都不能被实例化;
都包含抽象方法;
不同点:抽象类中可以为部分方法提供默认实现,而接口只能包含抽象方法;
一个类中只能继承一个直接父类,但可以实现多个接口
4.面向对象设计原则:
多用组合,少用继承;
针对接口编程;
针对扩展开放,针对改变关闭。