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抽象类和抽象方法吗?更多详情请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。