方法重载、方法重写、四种权限修饰、JavaBean、代码块
方法重载(overload)
- 一个类中可以含有多个重名的方法。
两同一不同
①同一个类
②同一个方法名
③不同参数列表:参数个数不同,参数类型不同

方法重写(override)
- ①子类重写的方法的修饰符大于等于 父类的权限修饰符
- ②子类不能重写父类中private的修饰符
- ③父类的被重写的方法的返回值类型是void,则子类重写的父类中方法的返回值类型是void,
父类的被重写的方法的返回值类型是A,则子类重写的方法返回值类型是A或A的子类,
父类的被重写的方法的返回值类型是基本类型,则子类重写的方法的返回值类型是 相同的基本类型。 - ④子类重写的方法抛出的异常必须小于等于父类被重写的异常
- ⑤父类被重写的方法需要是 非静态的方法,这时可以考虑重写。
四种权限修饰
| 修饰符 | 类内部 | 同一个包 | 不同包子类 | 同一个工程 |
|---|---|---|---|---|
| private | √ | |||
| (缺省) | √ | √ | ||
| protected | √ | √ | √ | |
| public | √ | √ | √ | √ |
| 对于class类只能用public和缺省来修饰 |
javaBean
- javaBean: 类是公共的、有一个无参的公共的构造器、有属性,且有对应的set和get方法。
代码块
- 静态代码块:
①随着类的加载而执行,且只执行一次
②静态代码块可以定义多个,且按照声明的先后顺序执行
③静态代码块内只能调用静态属性、方法 - 非静态代码块
①随着对象的创建而执行,创建一个对象,执行一次
②非静态代码块可以定义多个,且按照声明的先后顺序执行
③非静态代码块可以调用静态和非静态属性和方法
没有继承的初始化顺序


有继承的初始化顺序


class Person{
String name;
int age;
static String dec;
public Person(){
}
public Person(String name, int age){
this.name = name;
this.age = age;
}
//静态代码块
static{
System.out.println("静态代码块");
}
//非静态代码块
{
System.out.println("非静态代码块");
}
public void info1(){
System.out.println("info1");
}
public static void info2(){
System.out.println("info2");
}
}
/** 测试
Test1
Person.dec = "abc";
则结果输出:静态代码块
Test2
Person person = new Person();
则结果输出:
静态代码块
非静态代码块
Test3
Person person = new Person();
Person person2 = new Person();
输出结果:
静态代码块
非静态代码块
非静态代码块
*/
练习一
package com.hyq;
public class Test {
public static void main(String[] args) {
new Leaf();
System.out.println();
//new Leaf();
}
}
class Root{
static {
System.out.println("Root的静态代码块");
}
{
System.out.println("Root的非静态代码块");
}
public Root(){
System.out.println("Root的无参构造器");
}
}
class Mid extends Root{
static {
System.out.println("Mid的静态代码块");
}
{
System.out.println("Mid的非静态代码块");
}
public Mid(){
System.out.println("Mid的无参构造器");
}
public Mid(String msg){
this();
System.out.println("Mid的有参构造器,参数="+msg);
}
}
class Leaf extends Mid{
static {
System.out.println("Leaf的静态代码块");
}
{
System.out.println("Leaf的非静态代码块");
}
public Leaf(){
super("啦啦啦");
System.out.println("Leaf的构造器");
}
}
//super没有显式写明的话,默认调用的是无参构造器。
/** 一个new Leaf()的输出结果:
Root的静态代码块
Mid的静态代码块
Leaf的静态代码块
Root的非静态代码块
Root的无参构造器
Mid的非静态代码块
Mid的无参构造器
Mid的有参构造器,参数=啦啦啦
Leaf的非静态代码块
Leaf的构造器
*/
/** 2个new Leaf()的输出结果:
Root的静态代码块
Mid的静态代码块
Leaf的静态代码块
Root的非静态代码块
Root的无参构造器
Mid的非静态代码块
Mid的无参构造器
Mid的有参构造器,参数=啦啦啦
Leaf的非静态代码块
Leaf的构造器
Root的非静态代码块
Root的无参构造器
Mid的非静态代码块
Mid的无参构造器
Mid的有参构造器,参数=啦啦啦
Leaf的非静态代码块
Leaf的构造器
*/
方法重载、方法重写、四种权限修饰、JavaBean、代码块的更多相关文章
- Java四种权限修饰符 在创建类中的使用
四种权限修饰符 Java中有四种权限修饰符 public > protected > (default) >private 同一个类(我自己) YES YES YES YES同一个包 ...
- java 基础 四种权限修饰符
/** * Java有四种权限修饰符: * public > protected > (default) > private * 同一个类 YES YES YES YES * 同一个 ...
- 阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第6节 权限修饰符_6_四种权限修饰符
四种权限修饰符.从大到小 纵向再分成四种情况 同一个类 同一个类里面.private方式,可以访问到本类里面的 num成员变量 前面不写修饰符也能访问到 (default)就是不写的这种情况 受保护的 ...
- Java 四种权限修饰符
Java 四种权限修饰符访问权限 public protected (default) private 同一个类(我自己) yes yes yes yes 同一包(我邻居) yes yes yes n ...
- Java四种权限修饰符
四种权限修饰符
- Java中的四种权限修饰符及六种非访问修饰符(简识)
一.是哪四种访问权限修饰符呢? public > protected > [default] > private (公共的 ) (受保护的) (默认的) (私有的) 二.简单认识四种 ...
- Java 中的四种权限修饰符
* * private: * Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”. * 被其修饰的属性以及方法只能被该类的对象 访问,其子类不能访问,更不能允许跨包访问. * * def ...
- Java的四种权限修饰符
private:仅对本类可见 缺省(不需修饰符):对本包可见 protected:对本包及所有子类可见 public:对所有类可见 修饰符: * 权限修饰符:private,默认的,protected ...
- java四种权限修饰符(public > protected > (default) > private)
权限修饰符在哪里可以访问 (default) : 表示什么权限修饰符都不写 位置 public protected (default) private 同一个类 yes yes yes yes 同一个 ...
随机推荐
- 使用C#制作九九
效果图如下 源码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; usi ...
- 记一次docker安装成功,启动失败的原因
问题 按照错误提示,先查看docker的状态: systemctl status docker 可以看到,非常明显的一行大红字:Failed to start Docker Application C ...
- Java语言学习day39--8月14日
今日内容介绍1.Map接口2.模拟斗地主洗牌发牌 ###01Map集合概述 A:Map集合概述: 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形 ...
- 手把手带你入门ECharts
1.什么是ECharts ECharts,缩写来自Enterprise Charts,商业级数据图表,是来自百度商业前端数据可视化团队EFE的一个开源的纯Javascript的图表库,可以流畅的运行在 ...
- XCTF练习题---MISC---Ditf
XCTF练习题---MISC---Ditf flag:flag{Oz_4nd_Hir0_lov3_For3ver} 解题步骤: 1.观察题目,下载附件 2.这道题是安恒办的一场比赛题目,下载附件以后是 ...
- Django学习——路由层之路由匹配、无名分组、有名分组、反向解析
路由层之路由匹配 """路由你可以看成就是出去ip和port之后的地址""" url()方法 1.第一个参数其实是一个正则表达式 2.一旦第 ...
- Ubuntu 16.4安装1050ti显卡驱动问题及解决
不得不说,ubuntu上安装nvidia驱动坑是真的多!!! 本来在之前已经安装好了,从 显卡驱动到cuda再到cudnn去不没问题,就已一次推送而来的显卡驱动更新,把我的环境全部弄坏,为了吸取教训, ...
- PXE实现无人值守批量安装服务器
今天我们使用PXE+Kickstart+TFTP+DHCP+FTP实现无人值守安装服务器. 一.无人值守所需服务介绍: 1)PXE PXE,远程引导技术 功能:使计算机通过网络启动 硬件要求:客户端的 ...
- Unity实现简单的对象池
一.简介 先说说为什么要使用对象池 在Unity游戏运行时,经常需要生成一些物体,例如子弹.敌人等.虽然Unity中有Instantiate()方法可以使用,但是在某些情况下并不高效.特别是对于那些需 ...
- 【Python数据分析案例】python数据分析老番茄B站数据(pandas常用基础数据分析代码)
一.爬取老番茄B站数据 前几天开发了一个python爬虫脚本,成功爬取了B站李子柒的视频数据,共142个视频,17个字段,含: 视频标题,视频地址,视频上传时间,视频时长,是否合作视频,视频分区,弹幕 ...