在面向对象中,所有的对象可以通过类来创建。 但并不是所有的类都可以创建对象实例化的。如果一个类中没有足够完整的信息来描述具体的对象的话,那么这个类是抽象类,
Java中用 abstract 关键字来修饰类,这个类叫抽象类。
2. abstract 的语法格式
使用abstrct关键字修饰的方法就是抽象方法,值得注意的是,抽象方法只包含一个方法名,没有方法体。
语法格式:
abstarct class 类名{ 普通的方法; public void eat () { } 抽象方法; public abstarct void sleep (); }
如果一个类包含抽象方法,那么该类必须是抽象类。
3.抽象类的使用
1.如果一个类中用abstract修饰的话,那么这个类叫抽象类
abstract class Dog{
//这是个抽象类
}
2.抽象类中可以有普通成员方法和抽象方法
abstract class Dog{
public abstract void eat(); //抽象类中可以有抽象方法,抽象方法没有方法体
public void run (){
//抽象类中也可以有普通成员方法
}
}
3.抽象方法没有方法体,是不完整的方法
4.抽象类不能被实例化
5.写一个普通的类去继承抽象类
class Person{
//定义一个抽象方法 是不完整的方法 没有方法体的
abstract public void work();
}
//定义了咋用啊? 抽象类创建不了对象的 咋解决?
//解决方案: 再写一个普通类去继承抽象类即可
class Man extends Person {
}
6.在子类中一定去实现(重写)抽象类中所有的抽象方法
abstract class Person{
public abstract void eat();
}
class Man extends Person {
@Override //对父类中的抽象方法进行重写
public void eat() {
System.out.println("吃肉!!!");
}
}
7.非抽象方法可以重写也可以不重写
8.一个抽象类可以去继承另外一个抽象类
9.抽象类可以继承非抽象类
这部分内容到这里就结束啦,希望能帮助到大家!!