细谈抽象类

简介: 抽象类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 程序员 编译器
Java面向对象之——继承
Java面向对象之——继承
|
8月前
|
Java C++
继承杂谈。
继承杂谈。
50 0
|
Java
Java面向对象之继承
Java面向对象之继承
67 0
|
存储 安全 编译器
【巧妙继承】C++玩转继承的神级技巧
【巧妙继承】C++玩转继承的神级技巧
|
Java
Java面向对象继承
继承的概念 继承是面向对象编程中的一个概念,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。子类在继承父类的同时也可以添加自己的属性和方法,从而实现代码的复用和扩展。继承是面向对象编程的三大特征之一,其他两个分别是封装和多态。 继承的作用 1.提高代码的复用性:通过继承,子类可以直接使用父类的属性和方法,不需要重复定义。 2.便于代码的扩展:通过在子类中添加新的属性和方法,实现了代码的扩展。 3.提高代码的可维护性:将公共的属性和方法放在父类中,可以减少重复的代码,从而方便代码维护和升级。
76 0
|
Java
【Java面向对象】继承的认识与实现(1)
【Java面向对象】继承的认识与实现(1)
91 0
|
设计模式 消息中间件 Java
【Java设计模式 面向对象设计思想】三 再谈抽象类和接口
【Java设计模式 面向对象设计思想】三 再谈抽象类和接口
170 0
|
Java
Java面向对象—继承
Java面向对象—继承
87 0
|
Java
Java面向对象 继承
Java面向对象 继承
88 0

热门文章

最新文章