A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© xzy645181797 中级黑马   /  2016-4-27 21:44  /  344 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

以前一直对抽象类和抽象方法的概念有些模糊 现在用自己的理解来说一说
所谓抽象与之相反的就是具体,所以抽象类就是一种模糊的概念,比如定义一个类 动物,没有说到底是猫是狗,只是说是一种动物。这就叫抽象类,他可以涵盖猫类,狗类。猫狗类都可以去继承动物类。还比如 人 类,没说男人还是女人,老人还是年轻人。说以这些就是抽象类。
抽象方法就是只有声明,大括号里没有写具体的方法体。理解就是 人类有吃饭的方法,但没有说站着吃坐着吃,拿筷子拿叉子都没说。只是说吃饭,然后在子类中重写这个方法,加上具体的方法体。比如 女人 小口吃饭 就是具体的实现了这个方法。
  下面是比较官方的说法
抽象类和抽象方法必须用abstract关键字来修饰。
抽象方法只有方法声明,没有方法体,定义在抽象类中。
格式:修饰符abstract返回值类型函数名(参数列表)
抽象类不可以被实例化,也就是不可以用new创建对象。
原因如下:
1.抽象类是具体事物抽取出来的,本身是不具体的,没有对应的实例。例如:犬科是一个抽象的概念,真正
存在的是狼和狗。
2.而且抽象类即使创建了对象,调用抽象方法也没有意义。
3.抽象类通过其子类实例化,而子类需要覆盖掉抽象类中所有的抽象方法后才可以创建对象,否则该子类也
是抽象类。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马