java抽象类与接口整理

抽象类

一、什么是抽象类?(比如动物类,不具体到某个动物,抽象)
如果一个类表达的是一个抽象的概念。仅仅作为其他派生类的一个父类,主要定义功能,具体的实现交给他的子类。
2、语法:
在class前面加上“abstract”就是一个抽象类
3、特点:
(1)抽象方法所在的类必须是抽象类
(2)抽象类不能进行实例化(抽象的不具体的,不能创建对象)
(3)如果要实现一个抽象类,创建一个子类去继承这个抽象类,
(4)子类继承抽象类以后,必须重写抽象类的所有方法(前提子类不是抽象类)
(5)抽象类里面可以定义普通方法,相反普通类里面不可定义抽象方法
(6)抽象类可以定义构造方法(意义:普通类继承抽象类。可以通过构造方法隐式的对父类的属性实例化)
(7)abstract不能用来修饰属性、构造器、private、static、final
二、抽象方法
在返回值类型前面加上一个“abstract”就是一个抽象方法
特点:
只有方法的定义,没有方法体。(没必要,子类重写)

接口

例子:usb
只要符合USB接口的规范,那么各种设备都可以用
键盘,小风扇(带usb)U盘
接口就是一种公用的规范标准,只要符合规范标准大家都可以用
定义一个拍照类,一个播放类,一个手机类
手机可以实现拍照和播放,但是java是单继承,只能有一个父类,不能同时继承这两个类。
而接口可以多实现,所以把这两个类定义成两个接口,在里面定义响应的方法,然后再定义一个手机类去实现这两个接口可以了。
java单继承
一、什么是接口?
(1)就是多个类之间的公共规范
(2)就是一个特殊的抽象类,接口里面的方法都是抽象的方法
(3)接口解决了java单继承的鸡肋
二、怎么定义一个接口呢
“public interface 接口名”

public interface Traffic{  //定义接口
    int age = 10;//只有常量,没有变量的概念
    public static final int age1 = 10;//他两作用一样
    public abstract void start();//这是一个抽象方法
    abstract void add();//这也是一个抽象方法
    public void run();//这也是一个抽象方法
    void stop();//也是一个抽象方法
}

三、接口的特点
1、接口里面的都是常量,没有变量的概念,默认会给你加上“public static final”修饰
2、接口里面的方法都是抽象方法,默认会给你加上“public abstract”
3、接口不能够实例化
4、抽象类是继承,接口是用来实现的
5、一个类要实现一个接口,必须实现这个接口里面的所有抽象方法
6、一个类可以实现多个接口,中间用逗号隔开
7、一个类继承父类的同时还要实现一个接口
class A extend B implement 接口C 继承一定在实现接口前面
8、接口里面不能定义普通方法(jdk8以后有了default 概念可以加方法体)
9、接口没有构造方法
10、接口也可以继承接口,并且可以继承多个接口

四、接口的作用
1、可以实现不同类的相同行为,不需要考虑类之间的层次关系
吃饭 动物吃 人吃 动物类和人类互不相关
2、可以指明多个类需要实现的方法
3、可以是处于不同层次甚至互不相关的类具有相同的行为

五、实现类
实现接口的类叫做实现类 :class A implement 接口
这样A就是一个实现类

接口与抽象类

一、相同点
1、接口和抽象类都不能被实例化,只能被其他类实现和继承
2、接口和抽象类都可以包含抽象方法,实现接口和抽象类的类必须实现(实例化)这些抽象方法,否则实现的类就是抽象类
二、不同点
1、抽象类与接口定义不同
抽象类:public abstract class
接口:interface
2、接口只能包含抽象方法,不包含已经实现的方法;抽象类则完全可以包含普通方法
3、接口里面只能定义静态常量属性,不能定义普通属性;抽象类里既可以定义普通属性也可以定义静态常量
4、接口不包含构造函数;抽象类可以包含构造函数,抽象类里的构造函数并不是用于创建对象,而是让其子类调用这些构造函数来完成数与抽象类的初始化操作
5、接口不包含初始化块,但抽象类可以包含初始化块(初始化块就是一个整合的大的方法)
6、一个类最多只能有一个直接父类,包括抽象类;但一个类可以实现多个接口,通过实现多个接口可以弥补java的单继承不足。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值