一、继承

1. 继承的概念:

子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的一些属性或方法。

2. 继承中的初始化顺序:

从类的结构上而言,其内部可以有如下四种常见形态:属性(包括类属性和实例属性)、方法(包括类方法和实例方法)、构造器和初始化块(包括类的初始化块和实例的初始化块)。对于继承中的初始化顺序,又具体分为类的初始化和对象的初始化。

在new创建对象时,首先对对象属性和初始化块分配内存,并执行默认初始化。如果存在父类,则先为父类对象属和初始化块先分配内存并执行初始化。

然后执行父类构造器中的初始化程序,接着才开始对子类的对象属性和初始化块执行初始化。

注:

1. 在对象初始化阶段,属性和方法均针对子类可以从父类继承过来的属性和方法而言,一般而言,都是针对父类中非private而言的。

因为private修饰的为父类所特有的,子类没有继承过来,当new子类时,无须为其分配空间并执行初始化。当然了,父类的构造器子类也是不继承过来的,但构造器另当别论。

2. 类的初始化只执行一次,当对同一个类new多个对象时,类属性和类初始化块只初始化一次。

3.继承中的this和super:

构造器中的this表示当前正在初始化的对象引用,方法中的this表示当前正在调用此方法的对象引用。this具体用法表现在一下几个方面:

1.当具多个重载的构造器时,且一个构造器需要调用另外一个构造其,在其第一行使用this(param)形式调用,且只能在第一行;

2.当对象中一个方法需要调用本对象中其他方法时,使用this作为主调,也可以不写,实际上默认就是this作为主调;

3.当对象属性和方法中的局部变量名称相同时,在该方法中需要显式的使用this作为主调,以表示对象的属性,若不存在此问题,可以不显式的写this。

super表示调用父类中相应的属性和方法。在方法中,若需要调用父类的方法时,也一定要写在第一行。

public class People {

public String name;

private String live="活着";

People(String name){

this.name=name;

System.out.println("人对象"+name+"创建了");

}

public void print(){

System.out.println("name:"+this.name+"\t"+"live:"+this.live);

}

}

public class Student extends People{

public String name;

Student(String n){

super(n);

this.name=n;

System.out.println("学生对象"+name+"已创建");

}

public void print(){

System.out.println("name:"+this.name);

}

}

public class Demo {

public static void main(String [] args) {

Student s=new Student("aaa");

People p=new Student("bbb");

People p2=new Student("ccc");

People p3=p;

s.print();

p.print();

p2.print();

p3.print();

}

}

二、传递

传递分值传递和引用传递。

首先要说明的是java中是没有指针的,java中只存在值传递。 然而我们经常看到对于对象(数组,类,接口)的传递似乎有点像引用传递,可以改变对象中某个属性的值。但是不要被这个假象所蒙蔽,实际上这个传入函数的值是对象引用的拷贝,即传递的是引用的地址值,所以还是按值传递。

值传递

指的是在方法调用时,传递的参数是按值的拷贝传递。

值传递重要特点:传递的是值的拷贝,也就是说传递后就互不相关了

引用传递

指的是在方法调用时,传递的参数是按引用进行传递,其实传递的引用的地址,也就是变量所对应的内存空间的地址。

引用传递重要特点:传递的是值的引用,也就是说传递前和传递后都指向同一个引用(也就是同一个内存空间)。

student类加入

public void change(String b){

b=name;

}

主函数:public class Demo {

public static void main(String [] args) {

Student s=new Student("aaa");

s.print();

s.change("ccc");

s.print();

}

}

很显然输出的 是aaa,aaa。传递的是值的一份拷贝,这份拷贝与原来的值没有关系。

java继承和引用_浅谈Java继承、传递相关推荐

  1. java布尔类型比较器_浅谈Java中几种常见的比较器的实现方法

    在java中经常会涉及到对象数组的排序问题,那么就涉及到对象之间的比较问题. 通常对象之间的比较可以从两个方面去看: 第一个方面:对象的地址是否一样,也就是是否引用自同一个对象.这种方式可以直接使用& ...

  2. java null什么意思_浅谈java中null是什么,以及使用中要注意的事项

    1.null既不是对象也不是一种类型,它仅是一种特殊的值,你可以将其赋予任何引用类型,你也可以将null转化成任何类型,例如: Integer i=null; Float f=null; String ...

  3. java 中的单元测试_浅谈Java 中的单元测试

    单元测试编写 Junit 单元测试框架 对于Java语言而言,其单元测试框架,有Junit和TestNG这两种, 下面是一个典型的JUnit测试类的结构 package com.example.dem ...

  4. java编程double相乘_浅谈Java double 相乘的结果偏差小问题

    看下面的一段代码的运行结果: public class TestDouble { public static void main(String[] args) { double d =538.8; S ...

  5. java定义byte数组_浅谈java的byte数组的不同写法

    (由于篇幅原因阐述的不够详细科学,不喜勿喷). 经常看到java中对byte数组的不同定义,粗略整理的一下: 一个字节(byte)=8位(bit),"byte数组"里面全部是&qu ...

  6. java 中的排序_浅谈java中常见的排序

    浅谈java中常见的排序 学过java的人都知道,排序这一部分初次接触感觉还是有点难以理解,很多地方也会用到.然而,在java中常见的排序方法:冒泡排序,选择排序,插入排序等等.下面就让我们一起揭开他 ...

  7. java 对象之间转换_浅谈java对象之间相互转化的多种方式

    浅谈java对象之间相互转化的多种方式,对象,属性,参数,赋值,不支持 浅谈java对象之间相互转化的多种方式 易采站长站,站长之家为您整理了浅谈java对象之间相互转化的多种方式的相关内容. 第一种 ...

  8. java变量命名规则_浅谈JAVA开发规范与开发细节(上)

    开发团队在开发过程中,由于每个人的开发习惯,以及对于技术的理解深浅程度不一,往往一个项目在开发过程中,代码的质量,代码的风格都不尽相似,所以有一份适合团队的代码规范是非常有必要的,而一个团队的代码规范 ...

  9. java forkjoin 简书_浅谈Java的Fork/Join并发框架

    1. Fork/Join是什么 Oracle的官方给出的定义是:Fork/Join框架是一个实现了ExecutorService接口的多线程处理器.它可以把一个大的任务划分为若干个小的任务并发执行,充 ...

最新文章

  1. centos7下安装mariadb
  2. scala 抽象方法_Scala抽象类型
  3. 4.串口操作之API篇 CreateFile
  4. 合肥师范学院计算机组成原理实验,计算机组成原理实验教学探索
  5. Java爬虫需要的包_java爬虫需要的jar包
  6. 黑苹果EFI|联想 Lenovo ideapad 320S-15IKB 笔记本电脑实战黑苹果
  7. java版spring cloud电商源码+spring boot+redis多租户社交电子商务平台
  8. 产品经理—怎么用KANO模型给众多需求进行优先级排序?
  9. 转载:如果我的生命里可以遇到一个这样的MM.夫复何求!
  10. BT之家种子连接提取
  11. 学习笔记----网站的优化(五)---CDN加速
  12. Vue+Webpack打造todo应用(慕课学习笔记)
  13. 裸辞3个月,空白期啥都没干,怎么办?
  14. 星起航:抖音小店体验分低怎么办,如何提高店铺体验评分?
  15. HDU-2017 多校训练赛9-1005-FFF at Valentine
  16. 电商平台促销管理功能解析,数商云S2B2C商城系统开启日化行业数字零售新模式
  17. 如何让女性乳房更具吸引力?整形医生可以用眼动追踪技术大显神通吗?
  18. 粤嵌打卡第51天(小白带你进入bootstrap的学习(包含常用的页面插件源码供大家ctr+v))
  19. 计算机中 递归 的概念,递归是什么?关于递归的详细介绍
  20. Proteus8仿真:51单片机IrLink红外发送加接受模块的使用

热门文章

  1. ajax spring mvc 接收json数据,easyui ajax请求获取SpringMVC @ResponseBody返回的Json数据为什么非得eval才能通过对象获取值?...
  2. java list有序还是无序_牛批!2w字的Java集合框架面试题精华集(2020最新版),赶紧收藏。...
  3. linux中文输入法的实现
  4. 服务端高并发分布式架构演进之路【转】
  5. spring remoting源码分析--Hessian分析
  6. java使用jsp servlet来防止csrf 攻击的实现方法
  7. MapReduce简述、工作流程
  8. 机器学习入门系列一(关键词:单变量线性回归,梯度下降法)
  9. 微服务架构在云端的应用
  10. 阿里云发布大数据产品ODPS 6小时处理100PB数据