A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Java天下第一 初级黑马   /  2019-5-31 15:39  /  590 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1,什么叫抽象类?
java中我们把用关键字abstract修饰的类叫做抽象类,例如
public abstract void Expleam{}

2,抽象类中能拥有那些东西?
在抽象类中能存在5种成分,分别是:成员变量,方法(普通方法或抽象方法),构造器(构造方法),初始化块,内部类(接口或枚举)

抽象类中成员变量,普通方法和构造器的声明和普通的类一样,例如

public abstract void Expleam {
    public String name;
    public int age;
    public Expleam(){}    //构造器
    public void a() {
        /*具体实现代码
        */
}
}

3,抽象类特性:
1) 抽象类一定被abstract修饰
2) 抽象类无法利用new关键字创建实例,他的构造器一般由继承他的子类去调用。
3) 抽象类中的成员变量可以被子类继承并初始化,private变量由于无法被子类访问,所以无法在子类中初始化。例如

public abstract void C{
    public String name;
    public int age;
}

class D extends C {
    public D(String name,int age){ //利用构造器给继承的name赋值
        this.name = name;    /*此时的继承的name是父类的复制,修改
                                name不会影响父类中的name */               
        this.age = age;
}
}


4) 如果一个子类继承了一个抽象类,那么它就要重写抽象类中的所有抽象方法,如果它没有重写所有的抽象方法,那么它必须也声明为抽象类。

4,抽象方法
1) 抽象方法只有方法头没有方法体,例如

public astract void b();
1
从理解角度看: 抽象方法 – 只知道做什么,不知道怎么做,提供一个模板

2) 如果一个类中有一个或多个抽象方法,那么这个类一定是抽象类,但抽象类不一定含有抽象方法

总结: 抽象类体现的是模板的设计,作为多个子类的一种通用模板,子类在抽象类的基础上扩展,改造,但是子类大体上保留了抽象类的行为方式

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马