码迷,mamicode.com
首页 > 其他好文 > 详细

抽象类和接口的简要概述

时间:2018-07-18 23:41:11      阅读:301      评论:0      收藏:0      [点我收藏+]

标签:类型   动物   double   耦合   局限   好的   区别   多个   参数   

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、抽象类只能单继承,接口可以继承多个接口

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

 

抽象类和接口的简要概述

标签:类型   动物   double   耦合   局限   好的   区别   多个   参数   

原文地址:https://www.cnblogs.com/sw-123/p/9328092.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!