抽象类与接口
初识抽象类
抽象方法
抽象类的优势
初识接口
接口的特性
面向对象设计原则
初识抽象类
什么是抽象类?
答:1.抽象类不能被实例化。
2.如果子类不是抽象类,则必须重写抽象类中的全部抽象方法。
3.abstract修饰符不能final修饰符连在一起使用。
4.abstract修饰的抽象方法没有方法体。(子类必须写方法体)
5.private关键字不能用来修饰抽象法方法。
抽象类的定义格式:
public abstract class 类名称{
修饰符 abstract 返回类型 方法名();
修饰符 返回类型 方法名(){
方法体
}
}
抽象类与普通类的区别
1.抽象类需要用修饰符abstract修饰,普通类不需要。
2.普通类可以实例化,抽象类不能被实例化。
抽象方法
在java中,一个类的方法被abstract关键字修饰时,该方法称为抽象方法,抽象方法所在的类必须定义为抽象类。
当一个方法被定义为抽象方法后,意味着该方法不会有具体的实现,而在抽象类的子类中通过方法重写进行实现。
语法格式:[访问修饰符] abstract <返回类型> <方法名> ([参数列表]);
抽象方法与普通方法的区别
1.抽象方法用abstract修饰,普通方法不用。
2.普通方法有方法体,抽象方法没有方法体。
抽象类不一定是抽象方法,但抽象方法一定是抽象类。
抽象类的优势
抽象类中已经实现的方法可以被其子类使用,使代码可以被复用;同时提供了抽象方法,保证了之类具有自身的独特性。
初识接口
1.概念性接口,指系统对外提供的所有服务。
2.interface定义的实实在在的接口,即接口类型。
格式:
[访问修饰] interface 接口名称 [extends其他的接口名]{
//声明变量
//声明方法
}
public interface Myinterface{
public void foo();
//其他方法
}
与抽象类一样,使用接口必须通过子类,子类通过implements关键字实现接口。
格式:
public 类名 implements 接口名{
//实现方法
//普通方法
}
//定义USB接口
public interface UsbInterface{
//数据传输抽象方法
void service();
}
public class UDisk implements UsbInterface{
public void service(){
System.out.println("连接USB口,开始传输数据。")
}
}
接口的特性
1.接口中变量都是静态变量(public static final),必须显示初始化。
2.所有默认的方法都是 public abstract
3.接口舍友构造方法,不可被实例化,但可以被实现(作为类型使用)。
4.实现类必须实现接口的所有方法。
5.实现类可以实现多个接口,多个接口要用逗号隔开。
public class A implement B,C
满足 is a 关系,用继承;满足 has a 关系,用接口。
抽象类与接口
相同点:
1.代表系统抽象层
2.都不会被实例化
3.都包好抽象方法
不同点:
1.抽象类中可以有普通的方法也可以有抽象方法,接口中只能有抽象方法(被默认)。
2.一个类只能继承一个父类,但可以实现多个接口。
使用原则:
- is a—抽象类 has a—接口
2.接口做与外界交互的窗口,提供服务。
3.本身被制定,就不能被随意改变。
4.抽象类便于复用,接口便于功能扩展和维护
先创建父类,再创建接口,再创建子类,最后创建测试类,执行程序。
接口越多,能力越大。
作用:
提高程序可维护性,可扩展性
提高程序的规范性
提高程序的安全性
接口是一种能力,接口是一种约定,一种标准。
面向对象设计原则
1.摘取代码中变化的行为,形成接口。
2.多用组合,少用继承。
3.针对接口编程,不依赖于具体实现。
4.针对扩展开放,针对改变关闭。
来源:CSDN
作者:小白阿灏
链接:https://blog.csdn.net/weixin_45878636/article/details/104024311