java基础·抽象类和接口

388 阅读4分钟

相关推荐

Java基础·多态

Java基础·继承

抽象类和接口

11.1 抽象类概念和作用

1.抽象:

抽象是把多个事物共性的内容抽取出来,本质就是把我们关注的内容抽取出来。比如:宝马、奔驰都属于汽车,汽车是抽象出来的概念。

2.抽象类:

Java中可以定义没有方法体的方法,该方法由其子类来实现。把没有方法体的方法称之为抽象方法,含有抽象方法的类称之为抽象类,可以理解为看不懂的类。

3.抽象方法的特点:

(1)只有方法头没有方法体的方法称为抽象方法。

(2)抽象方法用abstract来修饰。

(3)抽象方法代表一种不确定的操作或行为。

(4)抽象方法不能被调用。

4.抽象类特点:

(1)定义中含有抽象方法的类叫做抽象类。

(2)抽象类用abstract来修饰。

(3)抽象类代表一种抽象的对象类型。

(4)抽象类不能实例化,也就是不能被new出来。

(5)抽象类中可以有具体方法,可以没有抽象方法。

例如:

//A是一个抽象类
public abstract class A {  public void methodA(){}
//methodB是一个抽象方法public abstract void methodB();}

5.案例,如下所示:

  • 发现报错,这是因为抽象类不能被实例化,在Java中我们可以通过继承去访问父类的成员。

结果

11.2 接口的概念和作用

接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而继承接口的抽象方法。接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。接口无法被实例化,但是可以被实现。

1.接口声明的语法格式:

interface 接口名{
//静态常量、抽象方法
}

2.接口的特点:

(1)接口中只能存放静态常量和抽象方法。

(2)Java接口是对功能的扩展。

(3)通过实现接口,Java类可以实现多实现。

(4)一个类可以同时继承(extends)一个父类并且实现(implements)多个接口。

(5)接口与接口之间可以通过使用extends来产生继承关系。

3.实现接口语法格式:

...implements 接口名称[,其他接口名称, ...]...

当类实现接口的时候,类要实现接口中所有的方法。否则,类必须声明为抽象的类。类使用implements关键字实现接口。在类声明中,Implements关键字放class声明后面。接口同样不能被实例化。

4.案例,如下所示:

结果:教Java去旅行。

11.3 接口与抽象类的区别

1.抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象。

2.抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象。

  1. 继承是一个“是不是”的关系,而接口实现则是“有没有”的关系。如果一个类继承了某个抽象类,则子类必定是抽象类的种类,而接口实现则是有没有、具备不具备的关系。

4.接口只给出方法的声明,不给出方法的实现。抽象类中可以有抽象方法的一般方法。如果是抽象方法的话,只有方法的声明。如果是一般方法的话,既有方法的声明,也有方法的实现。

小结

通过本节课的学习,我们了解了抽象方法,它不能有方法的实现,要在子类中去实现,而抽象类作为一个特殊的类,它一个类中如果包含有抽象方法,则此类必须是抽象类;但一个抽象类不一定包含抽象方法。同时抽象类不能实例化;一个类可以继承抽象类,普通类继承抽象类,必须实现所有的抽象方法、而抽象类继承抽象类,则没要求。 最后我们还学习了接口:interface,它与类平级,由静态常量,普通的抽象方法[公开的]组成,同时接口也可以理解为一种特殊的抽象类。

今天的内容到这儿了结束了,,都是一些简单基础的知识,就当是复习Java知识了。有需要的可以自行保存、收藏。有错误欢迎纠正;或者有觉得写的不好的,欢迎指导,非常感谢。