当前位置首页 > 软件编程 > JAVA教程 > JAVA什么是抽象方法,Java抽象类可以有具体方法吗

JAVA什么是抽象方法,Java抽象类可以有具体方法吗

  JAVA什么是抽象方法,Java抽象类可以有具体方法吗

  如何解决写爬虫IP受阻的问题?立即使用。

  java抽象类与抽象方法是什么?

  在类的继承中,如果定义了新的子类,子类变得越来越具体,父类变得越来越通用,那么类的设计应该保证父类和子类可以共享特性。有时,父类被设计得非常抽象,因此父类没有具体的实例。这样的类被称为抽象类;一般当我们设计一个类,不需要创建这个类的实例时,可以考虑将类设置为抽象类,让它的子类实现这个类的抽象方法

  抽象类(abstract class)

  当abstract关键字用于修饰一个类时,它被称为抽象类。一个类是其所有子类的公共属性的集合,它是一个包含一个或多个抽象方法的类。

  抽象可以被看作是一个类的进一步抽象。在面向对象领域,抽象类主要用于类型隐藏。

  抽象类的特征:

  (1)无法实例化。

  (2)抽象类有构造函数(所有类都有构造函数)

  (3)抽象方法所在的类一定是抽象类(因为抽象方法没有方法体,如果它所在的类不是抽象类,那么类可以实例化对象,调用抽象方法,然后又没有方法体具体实现函数,这是矛盾的)

  (4)抽象类可以没有抽象方法。

  //抽象类

  抽象类人{

  字符串名称;

  Public Person(){}//抽象类的构造方法

  公共抽象void dink();//抽象方法,没有{}方法体

  public eat(){//非抽象方法

  };

  }

  班级学生拓展人{

  @覆盖

  public void eat() {

  system . out . println( eat );

  }

  @覆盖

  public void dink() {

  System.out.println(喝水);

  }

  }抽象方法(abstract method)

  抽象修饰方法是抽象方法,所有抽象方法都必须存在于抽象类中。

  抽象类中定义的方法称为抽象方法。这些方法只有方法头的声明,用分号代替方法体的定义,也就是只定义了成员方法的接口形式,没有具体的操作。

  抽象方法的特征:

  (1)格式,不带方法体,包括{},比如公共抽象void dink();

  (2)抽象方法只保留方法的功能,具体实现交给继承的抽象类的子类,子类重写抽象方法。

  (3)如果子类继承了抽象类,重写了父类的所有抽象方法,就不是抽象类,可以实例化。

  (4)如果子类继承了一个抽象类,而没有覆盖父类中的所有抽象方法,这意味着子类中还有抽象方法,那么这个子类必须声明为抽象。

  在上面的例子中,Student子类继承了抽象父类,用自己的权重编写eat()抽象方法,但没有重写drink()抽象方法,这将导致错误。解决方法是重写drink()方法,或者将学生变成一个抽象类。

  抽象类的使用场景

  通常,当使用多态性时,抽象类更适用。你知道什么是java抽象类和抽象方法吗?更多详情请关注我们的其他相关文章!

本文来自网络,不代表菜鸟教程之家立场,转载请注明出处。
返回顶部