面向对象——补充:抽象类(目前非重点)
抽象类(非重点)
- 抽象类总结规定
一个类中如果包含抽象方法,这个类应该用abstract关键字声明为抽象类。
意义:
1,为子类提供一个公共的类型;
2,封装子类中重复内容(成员变量和方法);
3,定义有抽象方法,子类虽然有不同的实现,但该方法的定义是一致的。
注意点:
-
抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。
-
抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
-
抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。
-
构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。
-
抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。
- 由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。
- abstract修饰的类就是抽象类,修饰的方法就是抽象方法
- 抽象类中可以有普通方法,但有抽象方法时一定要声明为抽象类
- 抽象类不能使用new来创建对象,它是用来让子类继承的
- 抽象方法只有方法的声明,没有实现,让其子类实现
- 子类继承抽象类,必须实现抽象类的所有方法, 否则该子类也要声明为抽象类
package com.oop.demo08;
//abstract 抽象类 java的类是单继承,但是接口可以多继承
public abstract class Action {
//约束~让别人帮忙实现
//abstract 抽象方法,只有方法名字,没有方法的实现!
public abstract void doSomething();
}
package com.oop.demo08;
//子类在继承了抽象类的所有方法时,必须对抽象类方法进行实现,除非
public class A extends Action{
@Override
public void doSomething() {
}
}

浙公网安备 33010602011771号