抽象类与接口

可紊 提交于 2020-01-17 23:43:29

抽象类与接口

初识抽象类

抽象方法

抽象类的优势

初识接口

接口的特性

面向对象设计原则


初识抽象类
什么是抽象类?
答: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.一个类只能继承一个父类,但可以实现多个接口。

使用原则:

  1. is a—抽象类 has a—接口
    2.接口做与外界交互的窗口,提供服务。
    3.本身被制定,就不能被随意改变。
    4.抽象类便于复用,接口便于功能扩展和维护

先创建父类,再创建接口,再创建子类,最后创建测试类,执行程序。
接口越多,能力越大。
作用:
提高程序可维护性,可扩展性
提高程序的规范性
提高程序的安全性

接口是一种能力,接口是一种约定,一种标准。


面向对象设计原则
1.摘取代码中变化的行为,形成接口。
2.多用组合,少用继承。
3.针对接口编程,不依赖于具体实现。
4.针对扩展开放,针对改变关闭。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!