JAVA_SE复习(OOP2)
面向对象编程(二)
一、static 关键字
静态属性
1、不能覆盖静态方法。要被覆盖的方法必须是非静态的。在继承链中具有相同方法名的两个静态方法是两个互相独立的类方法。调用子类的静态方法只是将父类的静态方法隐藏了。
2、main()方法被声明为static 的原因是因为执行main 方法时,JVM 只是加载了这个类,并没有创建类的实例。
另外,静态方法只能调用静态变量和方法,非静态方法只能调用非静态变量和方法。
自我总结:
1. 被static修饰的变量,是该类的公有变量 ,若要在类外使用,首先要满足可视性,其次用该(类名.属性)结构即可调用。
2. 被static修饰的方法,首先不能被覆盖,可以被继承 , 若在子类中,以覆盖的语法写了一个类似父类的方法,那么父类的中的方法将被隐藏,但是不会覆盖父类中的方法。
二、final关键字
当一个变量标记为final,那么这个变量只能被赋值一次,而且必须在声明时或在构造器中显式初始化后才能被使用。
自我总结:
1. 被final修饰的类,不能被继承
2. 被final修饰的方法,不能被覆盖(重载)
3. 被final修饰的变量,只能被赋值一次,并且必须在构造器或者定义变量时赋初值。
三、抽象类
自我总结:
1. 当一个类中一旦有一个抽象方法(没有抽象属性这一说法,但是抽象类中可以有属性)时,该类被称作 抽象类, 。
2. 父抽象类中的抽象方法必须要在非抽象类的子类中实现。
3. 一旦一个方法被定义为抽象方法,那么这个方法就不能有方法体。
四、接口
1.接口是一系列方法的集合(其中可以包含常量【也必须是public修饰】)
2.接口内的抽象方法 无论是否定义修饰权限,始终是public
3.接口不能实例化其自身
4.灵活运用多态,以及多态参数
五、接口和抽象类
1.首先接口是描述一个继承它的类拥有什么样的功能,而抽象类总的来说是一个类,它描述的是一类对象的大概特征。
2.接口只能包含抽象方法,而且它可以多继承其他的接口(只能是接口,不能继承类),而一个类只能单继承一个类。
3.抽象类不仅可以在类中定义抽象方法,而且可以拥有构造器(但是该类不能被实例化),可以拥有各种权限修饰关键字
JAVA_SE复习(OOP2)的更多相关文章
- 7.JAVA_SE复习(文件)
文件和流 1.什么是节点流和处理流 InputStream & OutputStream Reader & Writer 乃节点流, 前面加File之类的名词 的节点流 其余加动词的均 ...
- 6.JAVA_SE复习(集合)
集合 结构图: 总结: 1.集合中的元素都是对象(注意不是基本数据类型),基本数据类型要放入集合需要装箱. 2.set与list的主要区别在于set中不允许重复,而list(序列)中可以有重复对象. ...
- JAVA_SE复习(多线程)
线程 1.两种创建线程的方式都有自身的优点. 实现 Runnable 接口的优点: 从面向对象的设计观点看,Thread 类严格来讲是一个虚拟CPU 的封装,因此只有要改变或扩展该CPU 模型 ...
- JAVA_SE复习(异常)
异常.调试和断言 一. 异常的分类 1. 可查异常 例: 2. 不可查异常 例:Runtime Exception 3. 异常的分类结构: 1. 不执行finally 子句的唯一情况是虚拟机关 ...
- JAVA_SE复习(Class)
一.面向对象程序设计(OOP) 1.面向对象的程序设计是程序开发的一种方法.它将对象作为程序的基本单元,将程序和 数据封装其中,以提高软件的重用性.灵活性和扩展性 2.三个特征: 封装:隐藏信息 继承 ...
- JAVA_SE复习(OOP1)
面向对象编程(一) 一.继承 1. 在类图表示中,使用一个分为三块的矩形表示一个类.矩形的第一块表示类名,第二块描述这个类的属性及属性的数据类型,第三块描述这个类的操作,也就是方法以及返回类型. ...
- JAVA_SE复习(basic)
一.数据类型 1.基本数据类型 Ps:有效标识符:_.字母.$开头 之后可有数字 整型:byte 1 short 2 int 4 long 8 (字节) 取值范围:其范围是从负2 的该数据类型位数 ...
- iOS总结_UI层自我复习总结
UI层复习笔记 在main文件中,UIApplicationMain函数一共做了三件事 根据第三个参数创建了一个应用程序对象 默认写nil,即创建的是UIApplication类型的对象,此对象看成是 ...
- vuex复习方案
这次复习vuex,发现官方vuex2.0的文档写得太简略了,有些看不懂了.然后看了看1.0的文档,感觉很不错.那以后需要复习的话,还是先看1.0的文档吧.
随机推荐
- 【工作记录】android手势事件操作记录
/* 用户按下触摸屏.快速移动后松开 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float vel ...
- Nagios在Ubuntu server上的安装配置
首先我参看的是Nagios的官方文档,Nagios – Installing Nagios Core From Source——The Industry Standard in IT Infrastr ...
- iOS开发——笔记篇&关于字典plist读取/字典转模型/自定义View/MVC/Xib的使用/MJExtension使用总结
关于字典plist读取/字典转模型/自定义View/MVC/Xib的使用/MJExtension使用总结 一:Plist读取 /************************************ ...
- 隐藏gvim中的工具栏和菜单栏
在vim的配置文件.vimrc中添加如下代码: "Toggle Menu and Toolbar set guioptions-=m set guioptions-=T map <si ...
- Ruby on Rails Tutorial 第四章 Rails背后的Ruby 之 类
Ruby和其他面向对象的语言一样,使用类来组织方法,然后实例化类,创建对象.1.构造方法使用双引号是字符串的字面构造方法,也可以使用“具名构造方法”,即在类名上调用new方法 >> s=& ...
- javascript 关于语义化作用的理解
看代码实例1 var a=1; function m(a){ //此处为形参第一个传入函数的参数,既为arguments[0] alert(a); //此处a为与形参绑定的 } m(a);//1 此时 ...
- ArcEngine中打开各种数据源(WorkSpace)的连接http://www.cnblogs.com/feilong3540717/archive/2011/08/07/2129906.html
ArcEngine中打开各种数据源(WorkSpace)的连接 ArcEngine中打开各种数据源(WorkSpace)的连接 (SDE.personal/File.ShapeFile.CAD数据.影 ...
- SSIS 学习(9):包部署常见问题汇总【转】
Integration Services 包在部署过程中,经常会出现这样那样的问题,让人摸不着头脑,很是烦人.下面我就将我在部署过程中,遇到的一些问题整理出来,以供大家参考. (一)SSIS包在SQL ...
- PHP--关于模板的原理和解析
此内容用作笔记,以备日后查看,此内容为学习李炎恢课程而来,并非自己所创,如有问题请私信~ 将PHP代码和静态HTML代码进行分离,使代码的可读性和维护性得到显著提高. 使用模板引擎: 我们所说的模板是 ...
- [改善Java代码]让多重继承成为现实
建议41: 让多重继承成为现实 在Java中一个类可以多重实现,但不能多重继承,也就是说一个类能够同时实现多个接口,但不能同时继承多个类.但有时候我们确实需要继承多个类,比如希望拥有两个类的行为功能, ...