JAVA抽象类和抽象方法(abstract)

Wesley13
• 阅读 505

一、抽象(abstract)的使用

  当父类的某些方法不确定时,可以用abstract关键字来修饰该方法[抽象方法],用abstract来修饰该类[抽象类]。

  我们都知道,父类是将子类所共同拥有的属性和方法进行抽取,这些属性和方法中,有的是已经明确实现了的,有的还无法确定,那么我们就可以将其定义成抽象,在后日子类进行重用,进行具体化。这样,抽象类也就诞生了。

  例如,定义了“动物”父类,其中“动物名称”和“动物年龄”属性已经明确了,但是“动物叫”的方法没有明确,此时就可以将“动物叫”定义为抽象方法。

  所以,抽象类是为了把相同的但不确定的东西的提取出来,为了以后的重用。定义成抽象类的目的,就是为了在子类中实现抽象类。 

JAVA抽象类和抽象方法(abstract)

package javastudy;

public class AbstractDemo1 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

    }
}

// 这就是一个抽象类
abstract class Animal {
    String name;
    int age;

    // 动物会叫
    public abstract void cry(); // 不确定动物怎么叫的。定义成抽象方法,来解决父类方法的不确定性。抽象方法在父类中不能实现,所以没有函数体。但在后续在继承时,要具体实现此方法。
}

// 抽象类可以被继承
// 当继承的父类是抽象类时,需要将抽象类中的所有抽象方法全部实现。
class cat extends Animal {
    // 实现父类的cry抽象方法
    public void cry() {
        System.out.println("猫叫:");

    }
}

JAVA抽象类和抽象方法(abstract)

二、用abstract修饰的类,即抽象类;用abstract修饰的方法,即抽象方法。

三、抽象方法不能有方法主体。格式如下:

abstract void xxx();

四、抽象类不能被实例化。因为抽象类中方法未具体化,这是一种不完整的类,所以直接实例化也就没有意义了。

五、抽象类中不一定要包含abstrace方法。也就是了,抽象中可以没有abstract方法。

六、一旦类中包含了abstract方法,那类该类必须声明为abstract类。

原文: https://www.cnblogs.com/ibelieve618/p/6410910.html

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
2年前
java考试题
Java考试题一:单选题1.下列哪一种叙述是正确的(D)A.abstract修饰符可修饰字段、方法和类B.抽象方法的body部分必须用一对大括号{}包住C.声明抽象方法,大括号可有可无D.声明抽象方法不可写出大括号2.如下代码
Jacquelyn38 Jacquelyn38
2年前
你不可不知的JS面试题(第二期)
1、什么是继承?子类可以使用父类的所有功能,并且对功能进行扩展。新增方法改用方法(1)、ES6使用extends子类继承父类的方法。// 父类    class A        constructor(name)            this.name name;                getNa
Wesley13 Wesley13
2年前
java 设计模式之模板模式
什么是模板模式模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。模板方法模式的结构抽象类(AbstractClass):
Aidan075 Aidan075
3年前
Dart中的抽象类、多态、以及接口
一、Dart中的抽象类Dart中抽象类: Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口。  1、抽象类通过abstract 关键字来定义  2、Dart中的抽象方法不能用abstract声明
Wesley13 Wesley13
2年前
java 07 接口
1.interface    接口2.接口中的成员修饰符固定  publicstaticfianl  //成员变量  只通过类访问   publicabstract    //成员函数   3.接口里所有的方法都是抽象的,抽象类中,可以没有抽象方法。  类与类继承,类与接口是实现的关系。降低耦合(高
Wesley13 Wesley13
2年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Wesley13 Wesley13
2年前
Java面试基础篇——第八篇:抽象类与接口的区别
1.抽象类抽象类:如果一个类中包含有抽象方法,或这个类使用abstract关键字修饰,则称这个类是抽象类。抽象方法是什么呢?抽象方法就是指用abstract关键字修饰的方法。需要注意的是:抽象类不一定必须包含抽象方法,而如果一个类中有抽象方法,这个类必须是抽象类。packagecom.developlee.abstractI
Wesley13 Wesley13
2年前
C#中虚函数和抽象函数的区别
抽象方法:使用abstract关键字例如:publicabstractboolWithdraw(…);抽象方法是必须被派生类覆写的方法。抽象方法是可以看成是没有实现体的虚方法,如果类中包含抽象方法,那么类就必须定义为抽象类。不论是否还包含其它一般方法。虚方法:使用virtual关键字publicvirtual
Wesley13 Wesley13
2年前
Java基础入门
类别关键字说明访问控制private私有的protected受保护的public公共的类、方法和变量修饰符abstract声明抽象class类extends扩充,继承final最终值,不可改变的implements实现(接口)interface接口native本地
Wesley13 Wesley13
2年前
Java 设计模式系列(十三)模板方法
Java设计模式系列(十三)模板方法模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。一、模板方法的结构