提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
以下是本人自学过程中所总结的笔记(含个人理解),欢迎大家浏览并留言,若有错误的地方请大家多多包含,并感谢大家的斧正。
一、抽象类
1.什么是抽象类?
用一句简单的话:含有抽象方法的类就叫做抽象类,那就有人问什么是抽象方法呢?还是一句话用abstract关键字修饰的方法就叫抽象方法,然后就是它到底有什么用呢?,那谈到用处就必须了解它的特征。
2.抽象类的特征?
1.使用abstract关键字修饰类名,其中可同时包含普通方法与抽象方法。
2.其中的抽象方法只能声明不可实现。
3.继承抽象类的子类必须实现其抽象方法
4.抽象类不可被实例化
3.抽象类的作用
看了上面的特征是不是还是不知道这么个类的限制版本有什么用呢,其实正因为它多出来的这些限制才更好的能够体现JAVA面向对象的特性,因为在现实在设计阶段对于很多事情是不确定的,就好像客户是学生,但是到底是小学生,中学生,还是大学生是不清楚的,所以抽象类就扮演着这一类不确定的事物让设计继续下去,在最终确定才在其子类实现
二、接口
1.接口的定义
Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为。
interface <接口名> {
abstract返回值类型 方法名([参数列表]);
}
2.接口的特征
1、Java接口中的成员变量默认都是public,static,final类型的(都可省略),必须被显示初始化,即接口中的成员变量为常量
2、Java接口中的方法默认都是public,abstract类型的(都可省略),没有方法体,
3、Java接口中只能包含public,static,final类型的成员变量和public,abstract类型的成员方法
4、接口中没有构造方法,不能被实例化
5、一个接口不能实现(implements)另一个接口,但它可以继承(extends)多个其它的接口
6、Java接口必须通过类来实现它的抽象方法
7、当类实现了某个Java接口时,它必须实现接口中的所有抽象方法,否则这个类必须声明为抽象类
8、一个类只能继承一个直接的父类,但可以实现多个接口,间接的实现了多继承
3. 接口的继承
在java中,类可以通过extends继承类,类可以通过implements关键字实现接口;接口与接口之间,也可以通过extends关键字实现继承,与类继承不同的是,一个接口同样可以继承多个接口,例如。
/**形状接口的定义:这个接口继承了另外两个接口*/
public interface NetJavaShape extends OtherShape,java.io.Serializable{
public final static String compName="华信";
//接口中定义的方法
void draw(int x1,int y1,int x2,int y2);
}
现在,我们的NetJavaShape继承了两个接口,(java.io.Serializeable接口是JDK中接供的一个接口,这个接口中没有任何方法实现,只是用来做标志用—实现了这个接口的类的对象可以被保存到文件中)。
如果某个类要实现NetJavaShape,就必须全部实现NetJavaShape接口中定义的方法和它的父接口中定义的方法。
代码如下(示例):
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
该处使用的url网络请求的数据。
总结
这次总结了关于接口与类我觉得下面这个比喻很好的体现其中关系了
1.飞机会飞,鸟会飞,他们都继承了同一个接口“飞”;但是F22属于飞机抽象类,鸽子属于鸟抽象类。
2. 就像铁门木门都是门(抽象类),你想要个门我给不了(不能实例化),但我可以给你个具体的铁门或木门(多态);而且只能是门,你不能说它是窗(单继承);一个门可以有锁(接口)也可以有门铃(多实现)。 门(抽象类)定义了你是什么,接口(锁)规定了你能做什么(一个接口最好只能做一件事,你不能要求锁也能发出声音吧(接口污染))。