细谈抽象类

简介: 抽象类1.抽象类是被abstract修饰的类2.抽象类中的抽象方法3.抽象类中可以有和普通类一样的成员变量和成员方法 4.抽象类不能被实例化5.那么抽象类不能被实例化要它有何用???

目录


抽象类


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


2.抽象类中的抽象方法


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


4.抽象类不能被实例化


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


6.注意:


抽象类

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


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

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

abstract class Shape {
}

2.抽象类中的抽象方法

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

abstract class Shape {
    public abstract void draw();
}

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


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

d5a71b7ebc805b5652066a13bb42de86_51259c0f3ffc451ab2a78433db938830.png


4.抽象类不能被实例化

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

2c6ecd7d0fee70285b90767f2ed4acd6_71ed12104d784572bae44f68c64d9567.png


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

就是为了被继承!!!

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

bc611f3612a967aa8ccf21a053c49f8f_2110f5881f5742969f8c0b23054e8903.png

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

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

ed026a6ccda850f58b9c1af65e099b06_b62ae647915841ac817f1e48d1458c4b.png


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

public class Test {
    public static void drawMap(Shape shape) {
        shape.draw();
    }
    public static void main(String[] args) {
        Shape shape = new rect();
        drawMap(shape);
    }
}

7ac0fbb30c5949eba51653dc340c36a2_7a3b3a49f4684e9babcedc50626047e5.png

6.注意:

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

final和abstract不能能同时存在的


目录
相关文章
|
8月前
|
设计模式 Java Android开发
Java设计模式:适配器模式的三种形式(五)
Java设计模式:适配器模式的三种形式(五)
|
8月前
|
设计模式 存储 Java
JavaSE——面向对象高级二(2/4)-final关键字、常量、抽象类(认识抽象类、抽象类的好处、应用场景-模板方法设计模式)
JavaSE——面向对象高级二(2/4)-final关键字、常量、抽象类(认识抽象类、抽象类的好处、应用场景-模板方法设计模式)
39 0
|
Java
面向对象思想(3)之方法1
面向对象思想(3)之方法1
75 0
|
设计模式
26【软件基础】简单计算器的实现+工厂方法模式应用+封装、继承、多态的体现
工厂方法模式是一种常用的`创建型设计模式`,它提供了一种将对象的创建过程封装起来的方法。在工厂方法模式中,将对象的创建过程交给一个`工厂类`来完成,而不是在代码中直接调用构造函数来创建对象。这样可以使得代码更加灵活,`降低耦合度`,方便后期维护和扩展。
182 0
|
存储 安全 编译器
【巧妙继承】C++玩转继承的神级技巧
【巧妙继承】C++玩转继承的神级技巧
|
设计模式
【大话设计模式】方法重写和方法重载的区别
【大话设计模式】方法重写和方法重载的区别
|
设计模式 消息中间件 Java
【Java设计模式 面向对象设计思想】三 再谈抽象类和接口
【Java设计模式 面向对象设计思想】三 再谈抽象类和接口
176 0
|
C++
第十三章 类继承
第十三章 类继承
121 0
|
Java 编译器 Linux
搞懂C++抽象类
搞懂C++抽象类
126 0
搞懂C++抽象类
|
设计模式
【重温设计模式】——从工厂方法模式看抽象类和接口的区别
【重温设计模式】——从工厂方法模式看抽象类和接口的区别
142 0