有一段时间没有写博客了,最近心情着实有些不好,希望能静下心来学习一些东西。
关于抽象类,几个月前看《core java》时,有过一些了解,但是一直到现在竟也没有直接用过抽象类,反倒是接口总是看到,那么很奇怪的是抽象类是用处不大,还是现在我学艺不精呢,所以今天准备花一些时间整理一下抽象类,接口的一些东西。
在此之前,我先大概把我知道的一些关于抽象类的记忆以及问题说一说:
1.抽象类或抽象方法都需要abstract修饰,放过来说,只要用abstract修饰的类和方法就是抽象类和抽象方法
2.有抽象方法的一定是抽象类,抽象类不一定必须包含抽象方法(具体原因现在还不知道,一会重点整理这个)
3.抽象类和接口很像,都不可以直接产生对象
4.有了接口还为什么要有抽象类,他们作用上最主要的区别是什么?
5.抽象类最主要用在哪里?在什么地方使用比较恰当?
嗯,现在我就带着问题去学习整理一次抽象类与接口。
杂想:
抽象类是对方法的声明,一定不能实现
建立抽象类就是建立者想要别人去实现他建立的抽象的方法
抽象方法在平时用的不多,但是面试时却问的很多
一、什么事抽象类,什么事接口
抽象类
抽象类的注意事项:
1.抽象类不能被实例化 ----------------- 无对象
2.抽象类不一定要包含abstract方法 ------------------可无abstract方法
3.一旦这个类包含了abstract方法,那么这一个类必须被声明abstract -------------------含abstract方法,定为abstract类
4.抽象类是对方法的声明,一定不能实现 -------------------abstract方法不能实现
接口(interface)
谈到接口,我最初学习的时候想到的是USB接口, 无论是电脑,手机还是U盘都可以连接,为什么呢?因为电脑厂商统一规定了尺寸,排线等。
在软件领域,接口是一个比抽象类更抽象的东西(不能确定是不是类),接口中的所有方法都不能有方法体,体现了程序设计中的多态和高内聚低耦合的特点。
注意:
1.接口不能被实例化
2.接口中的方法都不能实现
3.一个类可以实现多个接口(这是为什么呢?)
4..接口中的变量本质上都是 static final 类型的,且必须被初始化的值;但是不能用private和protect修饰
5.接口里的变量可以直接通过 接口.变量 获得
6.接口可以继承其他的类,但是可以继承其他的接口