JAVA基础知识总结:九
二。面向对象特性之继承
1.什么是继承?
如果两个或者两个以上的类具有相同的属性和方法,我们可以抽取一个类出来,在抽取出来的类中声明各个类中公共的部分
被抽取出来的类-------父类,基类,超类
两个或者两个以上的类-----子类,派生类
二者之间的关系:子类 继承自 父类(基类)
2,语法
访问权限修饰符 class 子类类名 extends 父类类名 {
}
a.当子类继承自父类的时候,子类对象可以访问父类中的成员变量
b.子类同样可以调用父类中的方法
c.一个父类,可以有多个对应的子类
d.一个子类,只能有一个父类(单继承)
3.super
this是对当前对象的引用
super是对父类对象的引用
1》super.属性:访问父类中的成员变量
2》super.方法:访问的是父类中的方法
3》super():访问的是父类的构造方法
注意:a.super()必须出现在子类构造方法的第一行语句
b.super()具体调用的是父类中的哪个构造方法,取决于所传的参数
二、访问权限修饰符
1.访问权限修饰符:public\private\protected\default
2.default:如果没有添加访问权限修饰符的话,其实就是default权限(注意:default一定不能写出来)
3.修饰类:类的访问权限修饰符只有两个:public和default
访问权限修饰符 同包 不同包
public 可以 可以
default 可以 不可以
说明:
public修饰的类在不同包下可以访问,但是需要注意:
a.进行导包(需要使用类的全限定名,例如:包名.包名.类名;import com.b.Student;)
b.如果在不同包中有相同名字的类,在使用的时候一定要注意使用类的全限定名
4.修饰属性:四个访问权限修饰符都能用
权限大小:public>protected>default>private
访问权限修饰符 本类 同包不同类 子类(不同包) 不同包
private 可以 不可以 不可以 不可以
default 可以 可以 不可以 不可以
protected 可以 可以 可以 不可以
public 可以 可以 可以 可以
三、方法重写
1.重写规则
在具有继承关系的两个类中,子类中的方法如果满足了以下条件,就说子类重写了父类的方法
a.方法名相同
b.参数相同
c.子类方法的返回值类型必须和父类方法的返回值类型相同,或者是父类方法返回值类型的子类型
d.子类方法的访问权限必须大于等于父类方法的访问权限
2.final关键字
1》final修饰类:这个类不能被继承
2》final修饰方法:这个方法不能被重写
3》final修饰变量
当final修饰一个成员变量的时候,系统不会再给这个成员变量赋初始值,所以在使用之前需要我们手动进行初始化
静态成员变量:在声明变量的时候或者在静态代码块中进行初始化
非静态成员变量:在声明变量的时候或者构造代码块中或者构造方法中直接初始化
局部变量:
注意:final修饰基本数据类型和引用数据类型的区别?
当final修饰基本数据类型的时候,不能再对基本数据类型变量进行赋值
当final修饰引用数据类型的时候,引用类型变量不能再被重新赋值,但是可以改变引用变量所指向的内容
总结:a.final和访问权限修饰符没有关系,是相互独立的
b.对于基本数据类型变量,命名字母全部大写,不同单词之间使用下划线进行分隔
c.对于引用数据类型变量,命名不需要遵循常量命名规范
四、Object类
是Java中所有类的父类,在其中定义了一些常用的方法
1》toString()
2>getClass()
3>hashCode()
4>equals()
JAVA基础知识总结:九的更多相关文章
- Java基础知识陷阱(九)
本文发表于本人博客. 今天我来说说关于JAVA多线程知识,有错误请指出.大家都知道JAVA在服务端上处理也有很大优势,很多公司也有在服务器跑JAVA进程,这说明JAVA在处理这个多线程以及并发下也有一 ...
- JAVA基础知识(九)Java 异常
Throwable是Error和Exception的基类 Exception(异常) :是程序本身可以处理的异常. Error(错误): 是程序无法处理的错误.这些错误表示故障发生于虚拟机自身.或者发 ...
- Java基础知识陷阱系列
Java基础知识陷阱系列 今天抽空把Java基础知识陷阱有关的文章汇总于此,便于大家查看. Java基础知识陷阱(一) Java基础知识陷阱(二) Java基础知识陷阱(三) Java基础知识陷阱(四 ...
- 第二十九节:Java基础知识-类,多态,Object,数组和字符串
前言 Java基础知识-类,多态,Object,数组和字符串,回顾,继承,类的多态性,多态,向上转型和向下转型,Object,数组,多维数组,字符串,字符串比较. 回顾 类的定义格式: [类的修饰符] ...
- java基础知识文章汇总
将之前的所有关于Java基础知识的随笔,整理成质量较高的十几篇随笔,几乎是好几篇比较零散的随笔合成现在的一篇,自认为还不错. java基础(一) 深入解析基本类型 java基础(二) 自增自减与贪心规 ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- java基础知识小总结【转】
java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...
- Java基础知识系列——String
最近晚上没有什么事(主要是不加班有单身),就复习了一下Java的基础知识.我复习Java基础知识主要是依据Java API和The Java™ Tutorials. 今天是第一篇,复习了一下Strin ...
- 学习android学习必备的java基础知识--四大内部类
学习android必备的java基础知识--四大内部类 今天学习android课程,因为我的主专业是JAVA,但是兴趣班却有这其他专业的同学,学习android 需要具备一些java的基础知识,因此就 ...
- JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)
本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...
随机推荐
- allego 输出报告说明
List of Available Reports Assigned Function Report Lists all assigned functions, sorted by function ...
- Mysql修改id自增值
如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数 truncate table 表名 如果想保留之前的记录,从某一id(3356)重新开始 alter table 表名 ...
- AngularJS -- Bootstrap(启动器)(转载)
AngularJS -- Bootstrap(启动器) 点击查看AngularJS系列目录 转载请注明出处:http://www.cnblogs.com/leosx/ Bootstrap(初始化) ...
- CentOS 7安装squid代理服务器
Squid,一个高性能的代理缓存服务器,支持FTP.gopher.HTTP协议. Squid,一个缓存Internet 数据的软件,其接收用户的下载申请(作为代理服务器),并自动处理所下载的数据,并返 ...
- IDEA- idea代码调试debug
IDEA有很多的快捷键,下面整理Debug的快捷键,方便自己使用!(阅读本篇可能花费您2分钟,需要多的实践练习) F9 resume programe 恢复程序 Alt+F10 show execut ...
- spring-mvc List及数组的配置接收
数组接收 前台传递数组id 后台接收方式: public WebReturnObject deleteBatch(@RequestParam("id[]") String[] id ...
- [Sdoi2010]星际竞速
个人对山东省选已经十分无语了,做了三道题,都TM是费用流,这山东省选是要干什么,2009--2011连续三年,只要会费用流,然后建个边,跑一跑就过了. 10 年一度的银河系赛车大赛又要开始了.作为全银 ...
- 2014 Benelux Algorithm Programming Contest (BAPC 14)E
题目链接:https://vjudge.net/contest/187496#problem/E E Excellent Engineers You are working for an agency ...
- VC维含义的个人理解
有关于VC维可以在很多机器学习的理论中见到,它是一个重要的概念.在读<神经网络原理>的时候对一个实例不是很明白,通过这段时间观看斯坦福的机器学习公开课及相关补充材料,又参考了一些网络上的资 ...
- thinkphp增删改查
添加数据: (添加单行数据) // 添加成功返回1,失败返回0 (添加多行数据) // 返回添加数据的条数 删除数据: 修改数据: (修改单个字段) (修改多个字段) // 修改成功返回1,失败返回0 ...