一、抽象类是什么?
父类知道子类一定要完成某个功能,但是每个子类完成的要求是不一样的。
子类以后也只能用自己重写的功能,那么父类的功能就可以定义为抽象方法,子类重写调用子类自己的就可以了。这个父类就叫做抽象类。
抽象方法:没有方法体,只有方法签名,必须用abstract修饰。
拥有抽象方法的类必须定义成抽象类。
抽象类:
必须用abstract修饰。
抽象类的作用:
为了被子类继承。
一个类继承了抽象类,必须重写完抽象类的所有抽象方法,否则该类只能定义为抽象类。
代码演示 :
public abstract class Animal {
/*
抽象类,不能创建对象,但是可以有构造方法,成员变量,成员方法
做为基类,只能通过子类继承,然后子类重写抽象方法来实现
*/
private String name;
private int age;
/*
抽象方法,即不能直接用,没有方法体不能具体实现
抽象方法用abstract来修饰
一个类中如果有未实现的抽象方法,那么这个类也必须修饰成抽象类
*/
public abstract void eat();
}
class Dog extends Animal{
/*
重写eat()方法
*/
@Override
public void eat(){
System.out.println("狗吃骨头");
}
}
//测试类
class Test{
public static void main(String[] args) {
Animal a1 = new Dog();
a1.eat();
}
}
二、使用步骤
1.引入库
代码如下(示例):
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
2.读入数据
代码如下(示例):
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
该处使用的url网络请求的数据。
二、抽象类的特点
优点 : 得到能给能够抽象方法的能力
缺点 : 不能创建对象
抽象类必须存在构造方法的能力,一定有
●因为抽象类的子类继承了他,那就必须要有抽象类构造方法,不然就不能初始化父类的变量了
抽象类不能构造对象
●因为构造了对象,万一通过对象调用方法,但是此时的方法是概念方法,不能调用,所以不能构造对象
注意 :
抽象类本身就是抽象的,不能实例化 (即创建对象)
三、总结
1、抽象类不能创建对象,只能创建其非抽象子类的对象。
2、抽象类一定有构造方法,而且必须有,提供给子类创建对象调用父类构造方法使用。
3、抽象类中不一定包含抽象方法,但拥有抽象方法的类必须定义成抽象类。
4、一个类继承了抽象类,必须重写完抽象类的所有抽象方法,否则该类只能定义为抽象类。