抽象类和接口的简要概述

Posted sw-123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了抽象类和接口的简要概述相关的知识,希望对你有一定的参考价值。

1、抽象类:

关键字:abstract 修饰的类

特点:具有抽象方法的类,不能够实例化,可以同时有普通方法和抽象方法;

定义:访问修饰符 abstract class 类名{}

抽象方法:访问修饰符 abstract class 方法名();

抽象方法和抽象类不能够用用private修饰,有构造方法,子类如果继承了它需要实现里面的抽象方法(就是方法重写)

public abstract class abstra {
public abstract void play();
}

作用:主要用作父类,在子类众多都需要继承父类中方法的时候,不好在父类定义方法,可以使用abstract修饰类和方法,

一般用于父类,使用起来除了不能够实例化其它都差不多;

2、接口:

关键字:interface

用关键字implements实现接口;

特点:抽象类的升级,接口里面的方法都是抽象方法,由常量和抽象方法组成不能够实例化;

定义:访问修饰符 interface 接口名字{}

抽象方法和接口不能够用用private修饰,无构造方法,子类中如果实现了接口implements需要重写里面的方法;

public interface inter {
public final double PI=3.14;
public abstract void play();//public abstract可以省略
}

应用范围:

a.接口可以继承多个接口;

b.子类可以实现多个接口;

c.子类可以继承一个父类同时实现多个接口;注意一般extends继承的父类在前,implements在后

 

作用:解耦,降低程序之间的耦合性,减少非他不可的不可替代性,提高程序的扩展性,;解决了类的单一继承性;

个人理解:在应用的过程中,一般来说抽象类可以解决需要接口的问题,但是抽象类一般用作于一个类属性的父类,如果有很多子类需要一个共同的方法,而类型不同呢?

这个时候最好定义一个接口,接口表示一个功能,没有类属性的局限性(比如说动物类定义为抽象类,那么里面的抽象方法一般都为动物的属性方法,具有局限性),只有有这个功能,都可以实现这个接口;

可以和多态一起结合使用,把接口作为返回值类型或者参数更能够体现接口的解耦性,接口能够更好的体现解耦;

 

3. 抽象类和接口的区别

a、抽象类可以有普通方法和普通属性;

b、抽象类有构造方法;

c、抽象类和接口定义的关键字不同;

d、抽象类只能单继承,接口可以继承多个接口

注意:抽象类不可以继承接口,可以实现接口。

 






以上是关于抽象类和接口的简要概述的主要内容,如果未能解决你的问题,请参考以下文章

days11--抽象类和接口

第七节 继承抽象类和接口

javaSE中抽象类以及接口概述

Java语言中的----抽象类接口

java 中interface和抽象类的区别

抽象类和接口的异同?