细谈抽象类

简介: 抽象类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不能能同时存在的


相关文章
Java设计模式--简单工厂、工厂方法和抽象工厂之间的区别
设计模式中的工厂模式(Factory Design pattern)是一个比较常用的创建型设计模式,其中可以细分为三种:简单工厂(Simple Factory)、工厂方法(Factory Method)和抽象工厂(Abstract Factory)。那么三者有什么区别呢?
186 1
Java设计模式--简单工厂、工厂方法和抽象工厂之间的区别
|
11月前
|
Java面向对象程序设计5接口与抽象类
Java面向对象程序设计5接口与抽象类
81 0
抽象类应用模板方法模式和接口应用之策略设计模式
抽象类应用模板方法模式和接口应用之策略设计模式
76 0
C++面向对象设计一个类需要注意的事情
C++代码千千万万,好的代码风格会让我们代码编写变得简洁高效,还会避免很多bug的出现,本期将讨论一个好的代码风格应该是怎样的。
【Java设计模式 面向对象设计思想】三 再谈抽象类和接口
【Java设计模式 面向对象设计思想】三 再谈抽象类和接口
204 0
【Java挠头】继承、抽象、接口、多态、向上转型、向下转型等精妙干货
【Java挠头】继承、抽象、接口、多态、向上转型、向下转型等精妙干货
177 0
【Java挠头】继承、抽象、接口、多态、向上转型、向下转型等精妙干货
【重温设计模式】——从工厂方法模式看抽象类和接口的区别
【重温设计模式】——从工厂方法模式看抽象类和接口的区别
147 0
Java面向对象程序设计4继承与多态
Java面向对象程序设计4继承与多态
514 0
【玩转23种Java设计模式】结构型模式篇:装饰者模式
装饰者模式(Decorator Pattern)是一种比较常见的模式,其定义如下:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。
【玩转23种Java设计模式】结构型模式篇:装饰者模式
【玩转23种Java设计模式】结构型模式篇:适配器模式
适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。适配器模式属于结构型模式,主要分为三类:类适配器模式、对象适配器模式、接口适配器模式。
【玩转23种Java设计模式】结构型模式篇:适配器模式
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等