MEC@JavaSE@基础篇@笔记15@抽象类与抽象方法

一、抽象类与抽象方法

1、抽象类介绍

抽象方法:

用关键字abstract修饰一个方法,并且只“声明”而不具体实现这个方法,就可以生成一个抽象方法。

抽象方法的定义格式:

public abstract 返回值类型 方法名(参数列表);

public abstract double perimeter();

抽象类:

如果一个类中存在抽象方法,那么该类就必须声明为抽象类。

抽象类给抽象方法提供存活空间

抽象类的定义格式:

public abstract class 类名{}

public abstract class Shape{}

代码示例:

package com.mec.about_abstract.core;

 /*
  抽象类: 理解层面来说, 就是把像的部分和相似的部分, 抽取到一个父类中 (共性行为向上抽取)
         当行为被抽取到父类中之后,  发现这个行为在父类中描述不清了.
         且该行为还是子类必须要做的事, 就将其定义为抽象方法.
         抽象方法需要存活在抽象类当中.
​
 简单记: 抽象类就是一个特殊的父类, 该父类中可以定义抽象方法.
     */

public abstract class Shape {
    protected String name;

    public Shape() {
    }

    public Shape(String name) {
        this.name = name;
    }

    public abstract double perimeter();
    public abstract double area();
}

 

2、抽象类的注意事项

  • 抽象类不能实例化,因为本类中存在为实现的方法

  • 抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类

  • 可以有构造方法

  • 由抽象类派生出的子类,如果依然没有实现其抽象方法,则,这个子类也一定是抽象类。

3、抽象类中常见问题解答

问题1: 抽象类为什么不能实例化(创建对象)?

一旦允许创建对象, 就可以调用内部没有方法体的抽象方法了.

问题2: 抽象类既然不能创建对象, 那构造方法有什么作用?

交给子类去访问的。创建子类对象,会调用父类的构造对父类中私有的成员变量进行赋值。

问题3: 抽象类可以没有抽象方法吗?

可以没有抽象方法, 但有抽象方法的类一定是抽象类。

问题4: 作为抽象类的子类, 需要注意什么?

  1. 必须重写所有的抽象方法.

  2. 将自己也变成一个抽象类 (不推荐,因为这样做没有意义)

4、抽象类编程核心思想解读

抽象类由“确定的成分”和“不确定的成分”两部分组成。

“确定的成分”通常是那些类中固定的,固有的和确定的成员变量,方法组成;这些成分在抽象类中实现,再用派生的方式让子类继承,从而实现了“代码复用”。

“不确定的成分”是那些类彼此有相同、又不同的部分。相同点在于,这些类中都存在这些成分;不同点在于,这些成分的具体实现方法不同(代码逻辑不同)。

如果一个类中存在这么一种功能(方法):这个功能不是有这个类实现,或者说,它无法确定其实现的过程,但是,又要用到这个功能以便实现其他“确定”的功能,那么,就可以把这个“不确定”、当前无法实现的功能声明为抽象方法,以待其派生类实现它。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值