@月月鸟
抽象类和抽象方法
抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板。
- 抽象方法
[访问修饰符]abstract<返回类型><方法名>([参数列表]) - 抽象类
abstract class<类名>{
} - 定义一个抽象类
public abstract class 类名称{
修饰符 absteact 返回类型 方法名();
修饰符 返回类型 方法名(){
方法体
}
}
抽象类的优势和局限性
抽象类中已经实现的方法可以被子类使用,是代码可以被服用;同时提供了抽象的方法,保证了子类具有自身的独特性。
抽象方法可以有子类去实现,但会造成代码亢余,解决此问题最理想的方式就是使用接口。
定义和实现一个接口
1.接口
public interface 接口名{
// 接口成员
}
- 和抽象类不同,定义接口使用interface修饰符,访问修饰符只能是public,求可选。
- 接口成员可以是全局常量和公共的抽象方法。
2 实现接口
public 类名 implements接口名{
实现方法
普通方法
}.
- 实现接口使用implements关键字。
- 实现接口的类必须实现接口中定义的所有抽象方法。
- 接口的实现类包含普通方法。
- 更复杂的接口
接口继承
[修饰符]interface 接口名extends父接口1,父接口2.。。{
常量定义
方法定义
}
实现多个接口的语法
class 类名extends父类名implements接口1,接口2.。。。{
类的成员
}
面向对象设计的原则
- 摘取代码中变化的行为,形成接口。
- 多用组合,少用继承
- 针对接口编程,不依赖于具体实现。
- 针对扩展开放,针对改变关闭。
以上内容可能会有出入,部分出自转载,欢迎大家踊跃留言指正。