一.抽象类的概念

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

方法功能声明相同,但方法功能主体不同。那么这时也可以抽取,但只抽取方法声明,不抽取方法主体。那么此方法就是一个抽象方法。

当定义了抽象函数的类也必须被abstract关键字修饰,被abstract关键字修饰的类是抽象类。

二.抽象类和抽象方法的定义

//抽象方法定义的格式:
public abstract 返回值类型 方法名(参数);
//抽象类定义的格式:
abstract class 类名 {
}

//研发部员工
abstract class Developer {public abstract void work();//抽象函数。需要abstract修饰,并分号;结束
}//JavaEE工程师
class JavaEE extends Developer{public void work() {System.out.println("正在研发淘宝网站");}
}//Android工程师
class Android extends Developer {public void work() {System.out.println("正在研发淘宝手机客户端软件");}
}

三.抽象类的特点

1.抽象类和抽象方法都需要被abstract修饰。抽象方法一定要定义在抽象类中。

2.抽象类不可以直接创建对象,原因:调用抽象方法没有意义。

3.只有覆盖了抽象类中所有的抽象方法后,其子类才可以创建对象。否则该子类还是一个抽象类。

之所以继承抽象类,更多的是在思想,是面对共性类型操作会更简单。

四.抽象类总结

1. 抽象类不能被实例化,如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。

2. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。

3. 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。

4. 构造方法,类方法(用static修饰的方法)不能声明为抽象方法。

5. 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。

转载于:https://www.cnblogs.com/akiyama/p/10222178.html

java面向对象(抽象类)相关推荐

  1. Java面向对象-抽象类

    Java面向对象-抽象类 定义:在java中,含有抽象方法的类称为抽象类,同样不能生成对象: 注意点: 1,包含一个抽象方法的类是抽象类: 2,抽象类和抽象方法都要用abstract关键字修饰: 3, ...

  2. Java基础学习第十二讲:Java面向对象---抽象类和接口

    Java面向对象-抽象类和接口 一.抽象类 抽象的定义: 我们在日常生活中,经常通过总结一些事物的共性来对事物进行分类,这种共性可能是一些相同的属性,也可能是一些相同的动作.通过总结,我们能够清晰的划 ...

  3. 25、Java面向对象——抽象类和抽象方法、接口

    目录 课前先导 一.抽象方法 1.定义 2.语法格式 3.抽象方法与普通方法的区别 二.抽象类 1.定义 2.语法格式 3. 抽象类和普通类的区别 4.为什么使用抽象类 三.代码演示 1.创建抽象类 ...

  4. Java 面向对象 抽象类与接口

    在类的继承中,如果一个个新的子类被定义,子类变得越来越具体,父类变得更加一般和通用,类的设计应该保证父子类能够共享特征,有时将父类设计得非常抽象,使得父类没有具体的实现,这样的类叫做抽象类:一般当我们 ...

  5. java面向对象抽象类和接口

    抽象方法和抽象类 (1)一个抽象类中可以不定义抽象方法,但是只要类中有一个抽象方法,则该类一定是抽象类 (2)抽象类不能被实例化,即不能被new创建一个实例对象. (3)如果一个子类继承一个抽象类,则 ...

  6. java面向对象-抽象类和接口

    抽象类(abstract没有足够的信息来描述) 被abstract修饰的类就是抽象类,修饰的方法就是抽象方法. 抽象类中可以没有抽象方法,但有抽象方法的类必须要声明为抽象类. 抽象类不能使用new来创 ...

  7. Java面向对象—抽象类和接口

    目录 抽象类 什么是抽象类? 1.抽象方法 2.抽象类 实现抽象类中的方法 抽象类使用的意义 接口 什么是接口? 接口的意义 抽象类 什么是抽象类? 1.抽象方法 当一个类没有具体的方法体时,且被ab ...

  8. java 继承 接口 练习,java:面向对象-抽象类、继承、接口结合练习

    public class Demo5_Animal { public static void main(String[]args){ Cat_Test c=new Cat_Test("加菲猫 ...

  9. Java面向对象抽象类案例分析

    1 /** 2 雇员示例: 3 需求:公司中程序员有姓名,工号,薪水,工作内容 4 项目经理除了有姓名,工号,薪水还有奖金,工作内容 5 对给出需求进行数据建模 6 7 8 分析: 9 在这个问题领域 ...

  10. Java学习 第四章 java面向对象(二)

    一.封装性 1.封装性产生目的 保护某些属性和方法不被外部所看见. 2.封装性的实现  为属性和方法进行封装是通过关键字private声明的;  实现该属性的set和get方法,为外部所访问:  eg ...

最新文章

  1. Win 10 UWP开发系列:设置AppBarButton的图标
  2. 按键防抖_单片机用一个IO口采集多个按键信号
  3. Spring容器中导入组件方式
  4. C++ 程序员自信心曲线图
  5. android 返回图标布局,Android 开发BottomNavigationView学习
  6. Git撤销修改、回退版本相关命令
  7. k-means聚类分析的C++实现
  8. 【实习之T100开发】帆软报表笔记
  9. 进度图绘制十大注意事项
  10. 发现了一款神仙软件,AI翻译、拍图识字等超多工具免费用
  11. 圆形区域函数可视化和泊松方程求解
  12. 如何将低dpi图片升级到300dpi
  13. 7.20-7.22作业代码
  14. Python 正则表达式 match、findall、search
  15. [渝粤教育] 西南科技大学 国际经济法 在线考试复习资料
  16. 【笔记】曝光值EV曝光补偿曝光量
  17. 小心看上去平平无奇的陷阱:如何防范高级渣?
  18. [洛谷月赛]终于结束的起点
  19. 如何让你的网页看起来更美观
  20. Skype和Lync可以互相语音聊天啦

热门文章

  1. android 监听通知栏点击事件,android使用NotificationListenerService监听通知栏消息
  2. php mb strimwidth,如何解决WordPress内置函数mb_strimwidth()不能用问题?
  3. hardmard积 用什么符号表示_[关于数学哲学的科普]为数学学习准备的基础数理逻辑(用自然推理系统展现的命题演算以及一阶谓词演算)...
  4. 点钞视频软件测试,模拟银行综合实验
  5. 白话文:几个例子马上看懂typescript基础类型
  6. 马哥Linux培训第二周课程作业
  7. linux入门和简单应用举例
  8. 2月28日 PCA降维,SVD压缩,中心化、归一化、标准化、k-l变换
  9. 第二季-专题16-LCD亮起来
  10. 数据结构/图论:最小生成树问题