博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象一
阅读量:4880 次
发布时间:2019-06-11

本文共 1306 字,大约阅读时间需要 4 分钟。

继承

  个人理解默认子类会继承父类所有,和访问修饰符无关,访问修饰符限制了子类可以访问的父类对象。

 

  java官方文档,子类不能继承父类private修饰的成员变量和方法,但是可以通过其他公开的方法调用。从侧面来对变量或方法产生影响。

 

内存结构: 

  父类对象首先被创建出来,在创建的子类对象,子类对象空间包含直接父类空间,this、super关键字分别被赋值为当前子类对象的和父类对象的地址符,

当使用this和super关键字的时候 ,实际上使用的当前子类对象和父类对象。

  每个具有继承关系的子类都有一个直接父类。

从内存结构可以看出实际上子类对象是包含父类对象的,所以说继承是继承了父类对象的所有,但是如果父类对象的相关成员被private修饰的话,只能是父类对象自己访问,其他类是访问不了,但是实际上子类对象还是继承了,只是不能访问。(当然这是个人观点。。。。实际上java官方说的还是有道理的。。。)

 

 

 

 

this,super关键字

 

this关键字表示对当前对象的引用;

 

  变量、方法:直接使用this.变量名或this.方法名调用

 

  构造器:在构造器中使用this引用其他构造器的时候一定要是构造器方法体第一句

 

super关键字表示对当前子类对象的直接父类对象的用;

 

  变量、方法:在子类中直接是使用super.变量名和方法名使用,代表对父类对象变量和方法的引用

 

  构造器:在子类构造器中使用,必须要在构造器第一句,可以不写,编译器会默认加上第一句,用来生成父类对象。

 

  当子类构造器被调用的时候,由于super()调用父类构造器,所以首先进入到父类的构造器中创建父类对象,父类对象创建完毕,再回到子类构造器执行构造器下面的语句创建子类构造器。

 

 

访问修饰符的权限

private  权限最小,只能本类使用

dafault  范围 相同包的类

protected  范围相同包的所有类,不同包的子类

public   范围 整个项目都可使用

 

 

方法重写和方法重载的区别

方法重写(override):发生在继承当中,子类重写父类方法

  要求:返回类型相同,方法名相同,参数列表相同,修饰符的权限不能比子类小

方法重载(overload):发生在同一个类中,

  要求:方法名相同,参数列表不同,和修饰符、返回类型无关

 

Object类

Object类是 所有类的基类,如果创建一个类,没有指定父类,那么他默认继承Object类,

Object方法:getClass()返回当前对象的Class对象,用于反射

      hashCode() 返回当前对象的hash码

      toString()返回当前对象的类型+@+hash码 字符串,,一般Object的子类会重写toString方法。

      equals()使用来表示两个引用类型的数值是否相等。

 

 

==和equals()

==:1.比较基本数据类型的数值

  2.比较引用数据类型的地址符

equals():比较引用数据类型的数值

 

转载于:https://www.cnblogs.com/pcyiren/p/8952205.html

你可能感兴趣的文章
java之静态代理与动态代理
查看>>
软件测试2019:第四次作业
查看>>
201571030335 + 小学四则运算练习软件项目报告
查看>>
不用代码就能实现get与post
查看>>
gdb基本调试命令
查看>>
互联网开放平台API安全设计
查看>>
OPMN
查看>>
LOG收集系统(一):原日志至收集
查看>>
【文摘】经营十二条
查看>>
清除浮动的方法
查看>>
Logstash连接Elasticsearch异常
查看>>
洛谷P4287 [SHOI2011]双倍回文(回文自动机)
查看>>
用户交互程序,格式化输出
查看>>
GNOME的发展与对比
查看>>
SPOJ PT07X Vertex Cover
查看>>
$ python-json模块的基本用法
查看>>
5.6.3.4 trim()方法
查看>>
Cookie、Session和自定义分页
查看>>
SQL演练
查看>>
React Antd中样式的修改
查看>>