首页 > 其他分享 >day07 方法重写&super、this、static关键字&JVM的类加载顺序题目

day07 方法重写&super、this、static关键字&JVM的类加载顺序题目

时间:2022-10-10 22:11:30浏览次数:48  
标签:调用 构造方法 day07 static 父类 super 加载

day07

方法重写

1)重写发生在子父类当中

2)方法名、参数列表、返回值均相同

3)重写的方法,方法体或者访问控制修饰符不同

4)子类方法的访问权限不能缩小,比如父类是int,子类重写权限不能是byte

重写和重载的区别、重写重载的特点

都是把重写重载特点都写出来

如果子类重写了父类的方法,在调用时会调用已重写的方法

super关键字特点

1)用在子类的构造方法中

2)不论写不写super(),java都会默认使用super()调用父类的构造方法

3)只能通过super()调用父类的构造方法一次

4)通过super()调用父类的构造方法,必须放在子类构造方法的第一行

this表示当前类对象

super表示当前类的父类对象

在子类构造方法,不论写不写super(),Java都会默认使用super()调用父类的构造方法

super();调用父类构造方法

super.方法名();//调用父类成员方法

创建一个子类对象的加载顺序

1)创建一个父类对象-后创建子类对象

2)先父类构造方法,后子类构造方法

public Father(){
    //super();//表示调用父类的构造方法
	this("zs");//调用类另一个有参构造
}
public Son(String name){
    
}

static关键字

静态、全局的

被修饰的方法或变量可以通过类名调用,不需要实例化

static关键字特点

1)被static声明的资源只能被初始化一次,在整个程序编译通过之后,运行之前进行初始化

2)被 static修饰的变量叫静态变量,static不能修饰局部变量(如方法中变量),因为本身static就有全局的意思

3)修饰方法,称为静态方法,静态方法只能调用静态资源,不能调用非静态变量,不能应用this和super,因为静态资源的加载先于实例化

4)被static修饰的变量和方法独立于该类的任何对象。也就是说,她不依赖于特定的对象,被该类的所有对象共享(可以被共同访问到)

5)修饰内部类(静态类),外部类不需要实例化,可以直接通过外部类名调用

特点:

run as》加载静态资源》开始执行第一行代码

1)static声明的资源只能被初始化一次,且在整个编译通过之后,开始运行之前完成初始化

//同类声明方法,可以直接 方法名()进行调用,不同类用 类名.方法名()进行调用
//被static修饰的变量称为静态变量 static String name;可以在同类方法中直接使用
static String name;
main方法内
	name = "123";
其他子父类:
    类名.name = "123";
//static声明代码块叫静态代码块
JVM的类加载顺序
静态资源》new》代码块》构造方法
    先在内存分配资源后构造方法初始化


image

/**

代码块

构造方法

代码块

构造方法

静态代码块

代码块

构造方法

*/

静态资源取出单独加载=》

1.b1,加载的是该类的对象,所以把该类中除静态资源外的资源加载一遍//运行代码块和构造方法

2.加载b2与b1同理//代码块和构造方法

3.加载静态代码块

4.加载main方法中的bus对象,同b1b2一致//代码块和构造方法

JVM的类加载顺序
静态资源》new》代码块》构造方法
先在内存分配资源后构造方法初始化

标签:调用,构造方法,day07,static,父类,super,加载
From: https://www.cnblogs.com/xiaoto9426/p/16777629.html

相关文章

  • static关键字
    类的静态方法是不能直接访问实例的成员的,它只能访问同类的静态成员。访问实例的成员的话,可以参考一下这个方法,那就是把静态方法的参数设置为类的实例,这样通过参数传递的方......
  • Ubuntu18.04 supervisord 配置celeryd
    1.groupaddceleryuseradd-r-gcelery-s/bin/falsecelerymkdir-p/var/log/celery/chowncelery:celery/var/log/celery/;==============================......
  • Supervisor进程管理
    1、安装Pip安装:pipinstallsupervisoryum安装:yuminstallsupervisorapt安装:apt-getinstallsupervisor2、简单管理[root@localhost~]#echo_supervisord_conf>/et......
  • static与全局变量
    一、普通全局变量普通的全局变量也称外部变量,在一个程序工程中,全局变量是整个工程都可见的,也就是说只需要在工程内的某一个文件内定义全局变量一次,在其他文件内都是可......
  • supervisor 部署及管理进程
    部署yum-yinstallepel-releaseyum-yinstallsupervisor查看配置systemctlcatsupervisord   修改配置   #主要是内存 文件打开数[root@bogon......
  • 重识Java第六天打卡----面向对象进阶2【包、权限修饰符、final和static,关键字、常量
    一、包和权限修饰符1.什么是包?包是一种划分类的层次和结构的封装形式,类似于文件管理系统中的文件夹,并且实际也是以文件夹为形式载体的2.包的作用对类文件进行分类管理。给类......
  • Java中static作用汇总
    五种用途1,修饰变量2,修饰方法3,静态块4,内部类5,importstaticstatic表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,Java语言......
  • 重识Java第五天打卡----面向对象进阶1【static关键字、单例、继承】
    一、static关键字1.定义及用法(1)定义[相关概念]static是静态的意思,可以用来修饰成员变量、成员方法。static修饰成员变量之后称为静态成员变量(or类变量),修饰方法之后称为静态......
  • 动手动脑--运行TestStaticInitializeBlock.java示例,观察输出结果,总结出“静态初始化块
    class Root{static{System.out.println("Root的静态初始化块");}{System.out.println("Root的普通初始化块");}public Root(){System.out.println("Root的无参数的构造器......
  • TypeScript super()与constructor()
    super在子类的constructor中调用,是在子类中执行了父类的构造函数,其实是无关父类原型的,如果想到改变父类的原型方法,可以直接重名覆盖,如果想利用父类原型方法,也可以用super.m......