专注Java教育14年 全国咨询/投诉热线:444-1124-454
星辉LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java中抽象类与抽象的方法

Java中抽象类与抽象的方法

更新时间:2020-08-05 16:08:21 来源:星辉 浏览1893次

知识点:java中的抽象类和抽象方法

关键字abstract意为抽象的,可以用来修饰类和方法,分别称作抽象类和抽象方法

抽象类一般在多态的场景中使用

一:抽象类(abstract class)

在类的继承中,如果一个个新的子类被定义,子类变得越来越具体,父类变得更加一般和通用,类的设计应该保证父子类能够共享特征,有时将父类设计得非常抽象,使得父类没有具体的实例,这样的类叫做抽象类;一般当我们设计一个类,不需要创建此类的实例时,可以考虑将该类设置成抽象类,让其子类实现这个类的抽象方法

抽象类的特征:

1.不可被实例化

2.抽象类是有构造器的(所有类都有构造器)

3.抽象方法所在的类,一定是抽象类(因为抽象方法是没有方法体的,如果所在的类不是抽象类,那么该类可以实例化对象,调用抽象方法,然后无方法体去具体实现功能,则矛盾)

4.抽象类可以没有抽象方法的

//抽象类

abstract class Person {
     String name;
     public Person(){}//抽象类的构造方法
     public abstract void dink();//抽象方法,无{}方法体
     public void eat(){ //非抽象方法
    };
}
class Student extends Person{
    @Override
    public void eat() {
        System.out.println("吃饭");
    }

    @Override
    public void dink() {
        System.out.println("喝水");
    }
}

二:抽象方法(abstract method)

abstract修饰的方法为抽象方法

抽象方法的特征:

1.格式,没有方法体,包括{},例如public abstract void dink();

2.抽象方法只保留方法的功能,具体的执行,交给继承抽象类的子类,由子类重写改抽象方法

3.如果子类继承抽象类,并重写了父类的所有的抽象方法,则此子类不是抽象类,可以实例化的

4.如果子类继承抽象类,没有重写父类中所有的抽象方法,意味着子类中还有抽象方法,那么此子类必须必须声明为抽象的。

Java中抽象类与抽象的方法

上面的例子中,Student子类继承抽象父类,自重写了eat()抽象方法,没有重写drink()抽象方法,会报错,解决方法是把drink()方法也重写了,或者把Student也变成抽象类

 三:抽象类的使用场景

抽象类一般在运用多态时,比较适用

以上就是星辉java培训机构的小编针对“Java中抽象类与抽象的方法”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>