细谈抽象类

目录

抽象类

1.抽象类是被abstract修饰的类

2.抽象类中的抽象方法

3.抽象类中可以有和普通类一样的成员变量和成员方法

 4.抽象类不能被实例化

5.那么抽象类不能被实例化要它有何用???

 6.注意:


抽象类

如果一个类中没有包含足够信息来描述一个具体的对象,这样的类就是抽象类

1.抽象类是被abstract修饰的类

(这里我们定义一个图形的抽象类)

abstract class Shape {


}

2.抽象类中的抽象方法

在抽象类中被abstract修饰的方法称为抽象方法,该方法可以没有具体的实现

abstract class Shape {

    public abstract void draw();

}

当一个类中含有抽象方法的时候,该类必须被abstract修饰

3.抽象类中可以有和普通类一样的成员变量和成员方法

 4.抽象类不能被实例化

(这里为了方便观察放到一个类里来看)

5.那么抽象类不能被实例化要它有何用???

就是为了被继承!!!

这里我们写一个rect(矩形)类继承Shape(图形)类

 这里为什么会显示错误呢???

当一个普通的类继承抽象类之后,必须要重写抽象类当中使用的抽象方法

 

 所以在这里我们就能这样实例化和进行向上转型!

public class Test {

    public static void drawMap(Shape shape) {
        shape.draw();
    }
    public static void main(String[] args) {

        Shape shape = new rect();

        drawMap(shape);
    }
}

 6.注意:

抽象方法不能被final,static,private修饰

final和abstract不能能同时存在的

猜你喜欢

转载自blog.csdn.net/llt2997632602/article/details/130539449