java 重载 权限_方法重载、方法重写、四种权限修饰、JavaBean、代码块

方法重载(overload)

一个类中可以含有多个重名的方法。

两同一不同

①同一个类

②同一个方法名

③不同参数列表:参数个数不同,参数类型不同

349e2e52ddce3f71744bedf0cfb2b821.png

方法重写(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的构造器

*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值