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关键字实例化 ...
随机推荐
- Nexus远程Maven仓库索引下载教程
下载Maven仓库索引有两种方式: 一.手动下载 首先将索引下载到本地,下载地址:nexus-maven-repository-index.zip 解压索引压缩包,将里面内容全部拷贝 关闭当前Ne ...
- 使用bootstrap时,选项框出现的意外效果,怎么办?
<label for="" style="float:right;margin-right:10%;"> <input type=&q ...
- wordpress一些常用代码
显示最新文章 <div id="newpost"> <h2> 最新文章</h2> <?php $previous_posts = get_ ...
- cocos2dx工程中接入支付宝sdk
1. 首先去支付宝官网下载开发者文档 2. 然后按着开发者文档将支付宝的sdk导入到你的工程中,并关联到工程中,步骤入下图: (1)将从支付宝官方网站获得的支付宝的sdk的jar包拷贝到工程中的lib ...
- SQL Server 与内存相关的术语
术语 1. virtual address space 虚拟地址空间 它是一个应用程序可以访问的最大地址空间.32位机上是4G(2^32).虚拟地址空间中的数据不一定在物理内存里.可能在缓存文件中. ...
- react中createFactory, createClass, createElement分别在什么场景下使用,为什么要这么定义?
作者:元彦链接:https://www.zhihu.com/question/27602269/answer/40168594来源:知乎著作权归作者所有,转载请联系作者获得授权. 三者用途稍有不同,按 ...
- python学习day1
python简单介绍: Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种 ...
- Unix/Linux环境C编程入门教程(24) MySQL 5.7.4 for Red Hat Enterprise 7(RHEL7)的安装
远观历史, MySQL的主要目的是为了能够在单处理器核心的商业服务器上运行.如今MySQL的一个变化用户可能不会注意到,那就是甲骨文已经开始重新架构MySQL的代码,使它大量的模块化.如软件解析器,优 ...
- poj 1734 Sightseeing trip_ 最小环记录路径
题意:求最出小环,输出路径 #include <iostream> #include<cstdio> using namespace std; #define N 110 #d ...
- kindeditor 下图片链接取消边框
在项目中使用了 kindeditor,版本是4.1.10,在发布信息的时候,将图片设置成了超链接,在 IE8 或者其他个别浏览器下会自动的为图片加一个蓝色的边框,效果如下图: 这个蓝框可以通过修改信息 ...