黑马程序员技术交流社区
标题:
关于Java抽象类的学习经历
[打印本页]
作者:
1183297959
时间:
2019-3-28 11:01
标题:
关于Java抽象类的学习经历
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) 如果一个类中有一个或多个抽象方法,那么这个类一定是抽象类,但抽象类不一定含有抽象方法
总结: 抽象类体现的是模板的设计,作为多个子类的一种通用模板,子类在抽象类的基础上扩展,改造,但是子类大体上保留了抽象类的行为方式
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2