栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

关于java抽象方法和抽象类的一些理解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于java抽象方法和抽象类的一些理解

----------------------------------------------------------学习总结,如有不对请不吝赐教 抽象方法

1.由abstract修饰

2.只有方法的定义,没有具体的实现,后面跟分号

abstract void demo();

3.包含抽象方法的类必须是抽象类,否则报错:

抽象类

1.由abstract修饰

2.包含抽象方法的类必须是抽象类,但抽象类中可以不包含抽象方法

3.抽象类不能实例化(不能new对象),但能够作为类型进行变量的声明,并通过向上造型进行赋值(用抽象类的派生类new的对象对抽象类类型的变量进行赋值)

public abstract class AA {
    abstract void demo();
    public static void main(String[] args) {
        AA a=new BB();//向上造型
    }
}
class BB extends AA{
    void demo(){
    }
}

 在上面,BB作为AA的派生类,会继承AA的抽象方法,如果不对demo()进行重写,则demo()依然是抽象方法,那么BB需要声明为抽象方法,否则报错:

改成抽象的类则BB仍然为抽象类,其中含有抽象方法demo()

 

即:当有派生类继承抽象方法时,若不对抽象方法(所有)进行重写(添加方法体),则认为派生类中仍然含有抽象方法,则该派生类需要修饰为抽象类。并且不能进行实例化(new对象)

4.由于3.所以抽象类单独存在没有意义

5.扩展:能够直接创建抽象类的数组对象,并且通过向上造型对数组元素进行赋值。

public abstract class AA {
    abstract void demo();
    public static void main(String[] args) {
        AA[] aa=new AA[10];//这里的抽象类只作为类型声明使用,不涉及实例化,实例化的是数组对象
        aa[0]=new BB();
    }
}
class BB extends AA{
    void demo(){
    }
}
使用抽象方法的意义

实际上,使用抽象方法进行重写较于普通方法的重写的优势在于:

当对象的行为必须重写,则设计为抽象方法,必须重写才能实现实例化(new对象),而普通的方法可以选择不重写。在开发过程中可以对代码编写起到限制作用

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/770251.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号