J2SE知识点摘记(三)
1、 在java只允许单继承,而不允许多重继承,也就是说一个子类只能有一个父类.但在java中却允许多层继承.
2、 非内部Class只能被public或者default修饰.
3、 子类构造过程中必须调用父类的构造函数.
4、 实际上子类对象创建后含有一个父类对象,有this去引用自身,super去引用父类.
5、 子类对象在实例化时会默认先去调用父类中的无参构造方法,之后再在调用本类中的相应构造方法.但是,实际上子类并没有继承父类中的构造函数(构造函数名和函数名一样),只是子类在实例化对象时先自动调用父类的构造函数”super.”,再调用自己的构造函数”this.”.(super必须先写)
6、 补充: 如果父类base class只有缺省构造函数,也就是编译器自动为你产生的.而子类中也只有缺省构造函数,那么不会产生任何问题,因为当你试图产生一个子类的实例时,首先要执行子类的构造函数,但是由于子类继承父类,所以子类的缺省构造函数自动调用父类的缺省构造函数.先产生父类的实例,然后再产生子类的实例.
7、 结论:子类如果有多个构造函数的时候,父类要么没有构造函数,让编译器自动产产生,那么在执行子类构造函数之前先执行编译器自动产生的父类的缺省构造函数;要么至少要有一个显式的缺省构造函数可以让子类的构造函数调用.
8、 final关键字 对象用final标记后,表示该对象不能再重新实例化
9、 构造方法的私有
构造方法虽然被私有了,但并不一定说此类不能产生实例化对象,只是产生这个实例化对象的位置有所改变,即只能在本类中中产生实例化对象.例子:private static final Person p=new Person();//封装在在Person类中,可以在main()方法直接使用"Person p;"来声明,此时,p会被自己Peron类实例化,对比main()方法使用"Person p=new Perosn;".
10、 super关键字主要的功能是完成子类调用父类中的内容,也就是调用父类中的属性或方法.例子:super("张三",25);//用super调用父类中的构造方法,只能放在程序的第一行.super关键字不仅可用于调用父类中的构造方法,也可以调用父类中的属性或方法,例如:super.父类中的属性;super.父类中的方法;
11、 限制子类的访问
父类不希望子类可以访问自己的类中的全的属性或方法,所以需要要将一些属性与方法隐藏起来,不让子类去使用.为此可在声明属性或方法时加上private关键字,表示私有.
12、 覆写
所谓"重载",即是方法相同,但却可在不同的场合做不同的事.当一个子类继承一个父类,而子类中的方法与父类的名称,参数个数,类型等都完全一致时,就称子类中的这个方法覆写了父类中的方法.同理,如果子类中重复定义了父类已有的属性,则称子类中的属性覆写了父类中的属性.注意:在子类中可以通过super.方法()调用父类中被子类覆写的方法.
13、 This关键字
this.属性、this.方法(),实际上都表示当前的对象中的属性或当前对象调用的方法.
this的核心:表示当前对象,当前正在操作本方法的对象称为当前对象.
使用this可以调用其他构造方法,但是此语句必须放在构造方法的首行.
J2SE知识点摘记(三)的更多相关文章
- J2SE知识点摘记-数据库(二)
一. 查询数据 注意sql的内容. 通过ResultSet接口保存全部的查询结果,通过Statement接口中的executeQuery()方法查询.查询之后需要分别取出.通过nex ...
- J2SE知识点摘记-数据库(一)
一. 数据库连接 在JDBC的操作过程中,进行数据库连接的主要步骤如下: 通过Class.forName()加载数据库的驱动程序.首先需要利用来自Class类中的静态方法forNam ...
- J2SE知识点摘记(二十二)
Map 1.4.1 概述 数学中的映射关系在Java中就是通过Map来实现的.它表示,里面存储的元素是一个对(pair),我们通过一个对象,可以在这个映射关系中找到另外一个和这个对象相关 ...
- J2SE知识点摘记(十八)
Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念: 1) Collection . 一组对立的元素,通常这些元素都服从某种规则.List必须保持元素特定的顺序,而Set 不能有重复 ...
- J2SE知识点摘记(十)
1. 多线程的同步 2. 同步代码块 即程序中不能有多个线程同时在这两句代码之间执行.(必须两句代码执行完,其他线程才可以公用执行) 同步代码块定义语法如下 ... syn ...
- J2SE知识点摘记(六)
1. static关键字的使用 static 关键字:可以用于修饰属性,也可以用于修饰方法,还可以用于修饰类. static 修饰属性:无论一个类生成了多少个对象,所有这些对象共同使用唯 ...
- J2SE知识点摘记(五)
1. 引用数据类型的传递 java用引用代替C++中的指针 fun()方法接收的参数是是Change c1,也就是说说fun()方法接受的是一个对象的引用,所以fun方法中所所做的操作就 ...
- J2SE知识点摘记(四)
1. 抽象类(abstract) 抽象类和抽象方法都必须用abstract关键字来修饰. 抽象类不能被直接实例化,也就是不能直接用new关键字去产生对象. 抽象方法只需声明,而不需实现. ...
- J2SE知识点摘记(二)
1. 对象的声明 "类名 对象名 = new 类名();"例子:Person P;//先声明一个Person类的对象p p=new Person();//用new关键字实例化 ...
随机推荐
- phpstorm8 配置svn
步骤1 步骤2. 步骤3.
- MySQL数据库改名字
在这里首先感谢那个网上已经给出了解决办法的同志 有很多MySQL数据库的初学者可能都会遇到一个关于改名字的问题,可能大家第一时间就会想到去网上搜搜,其实我跟大家的心理是一样的(呵呵). 据我所知,My ...
- 重写QSqlTableModel的flags函数实现tableview中某些列不可编辑,某些可以编辑
Qt中使用QsqlTableModel和QTableView来显示数据库的查询结果是非常方便的,但是为了使QTableView中某些了列不可用,就需要重写 Qt::ItemFlags flags(co ...
- JavaScript的异步操作
http://sporto.github.io/blog/2012/12/09/callbacks-listeners-promises/
- UVA 12563 Jin Ge Jin Qu hao
dp-背包 开始用普通dp写了一发发现没法确定最大时间... 后来看到大牛机智的写法,嗯...dp表示当前状态能否成立:然后从条件最好的状态开始遍历,直到这个状态成立然后退出遍历. 具体的看代码吧.. ...
- webapi文档
webapi文档描述-swagger 最近做的项目使用mvc+webapi,采取前后端分离的方式,后台提供API接口给前端开发人员.这个过程中遇到一个问题后台开发人员怎么提供接口说明文档给前端开发人员 ...
- Sql Server专题一:索引(下)
首先这次的内容是全文索引,跟前面讲的其实没有多大关系 两种索引的功能和结构都是不同的,普通索引的结构主要以B+树和哈希索引为主,用于实现对字段中数据的精确查找,比如查找某个字段值等于给定值的记录,A= ...
- C# Chart 折线图 多条数据展示
private void btn_Click(object sender, EventArgs e) { DBHelper db = new DBHelper(); DataSet ds = db.G ...
- 【数据结构(ywm版)】异或指针双向链表
在<数据结构题集>中看到这种链表,实际上就是把一般的双向链表的next和prior两个指针通过异或运算合并为一个指针域来存储,每个结点确实可以减少一个指针的空间,但会带来取指针值时运算的开 ...
- 【HDU】4092 Nice boat(多校第四场1006) ——线段树 懒惰标记
Nice boat Time Limit: 30000/15000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) To ...