抽象(abstract)

抽象(abstract)类
抽象:反义词是具体,不清楚不确定

抽象的由来
    多个类不断向上抽取,在多个类中的功能是具体的是明确的,但是抽取到父类中之后该功能就不明确了
    例如:一个三角形计算面积可以具体实现,一个圆形计算面积也可以具体实现,他们两个都有计算面积的方法这时共性内容不断向上抽取,形成以个父类,父类中的计算面积犯法就是无法明确如何实现/

抽象类:使用abstract关键字修饰的类
        如果一个类中有抽象方法,呢么这个类必须是抽象类

格式:
    //抽象类:
    public astract class 类名{
        //抽象 方法
        public abstract 返回值类型,方法名(参数列表);

}
抽象类的特点:
(1)抽象类和抽象方法都必须使用abstract关键字修饰
(2)不能创建对象
(3)一个类去继承抽象类,要么实现所有的抽象方法。
要么该类必须也是一个抽象类
(4)抽象类的构造方法
构造方法两个作用:
a:创建对象
b.给成员变量初始化
(5)类也抽象之间的关系是继承
(6)抽象类中可以有抽象方法也可以没有抽象方法
抽象类中可以非抽象的方法
*练习:
/*老师类:
属性:姓名,年龄,性别
行为:讲课,吃饭
基础班老师:
属性:姓名,年龄,性别
行为:讲基础班课程,吃饭
就业班老师:
属性:姓名,年龄,性别
行为:讲就业班课程,吃饭
定义测试类:
分别创建基础班老师对象和就业班老师对象
调用各自的讲课方法

    要求:
    分析各个事物之间的继承关系,抽取出相关的类*/

public abstract class Teacher {
private String name;
private int age;
private String sex;

public Teacher() {
}

public Teacher(String name, int age, String sex) {
    this.name = name;
    this.age = age;
    this.sex = sex;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public int getAge() {
    return age;
}

public void setAge(int age) {
    this.age = age;
}

public String getSex() {
    return sex;
}

public void setSex(String sex) {
    this.sex = sex;
}

public void eat() {
    System.out.println("吃法~");
}

public abstract void teach();

}

class BaseTeacher extends Teacher {
public BaseTeacher() {
}

public BaseTeacher(String name, int age, String sex) {
    super(name, age, sex);
}

public void teach() {
    System.out.println(getName()+"年龄"+getAge()+","+getSex()+","+"讲基础班课程");
}

}

class JobTeacher extends Teacher {
public JobTeacher() {
}

public JobTeacher(String name, int age, String sex) {
    super(name, age, sex);
}

public void teach() {
    System.out.println(getName()+"年龄"+getAge()+","+getSex()+","+"讲就业班课程");
}

}

class Test {
public static void main(String[] args) {
BaseTeacher baseTeacher = new BaseTeacher(“基础班老师”, 20, “男”);
JobTeacher jobTeacher = new JobTeacher(“就业班老师”, 25, “男”);

    baseTeacher.teach();
    jobTeacher.teach();
}

}

猜你喜欢

转载自blog.csdn.net/qq_42815122/article/details/81318877