特殊关键字

方法中的可变长个数的参数
语法:数据类型… 变量名。-必须作为最后一个参数出现
具体处理过程中实际上是按照数组的方式进行处理,而且数组不会为null

public void pp(int... k1){ if(k1.length>0){ for(int i=0;i<k1.length;i++) System.out.println(k1[i]); } }

void pp(Object… arr)可变长参数可以是Object[] 数组
注意:一个方法的最后一个位置只有一个,所以方法中的可变个数的参数只能有一个
static相关问题:
父类中定义的静态方法(类方法)是否可以通过”子类名.静态方法名”的方式进行调用?
可以,因为继承的特性`

public class Test1 { public static void main(String[] args) { Son.pp(); } }class Fa{ public static void pp(){ System.out.println("Fa.pp()"); } }class Son extends Fa{}

父类中定义的静态方法(类方法)是否可以在子类中进行覆盖定义(重写)?
可以,但是方法签名必须一致,方法必须为static定义

public class Test1 { public static void main(String[] args) {
Son.pp(); } }class Fa{ public static void pp(){ System.out.println("Fa.pp()"); } }class Son extends Fa{ public static void pp(){ System.out.println("Son.pp()"); } }

特殊点:静态方法也允许通过对象进行调用

public class Test1 { public static void main(String[] args) { Fa ff=new Son(); ff.pp(); //注意这里调用的是父类中定义的静态方法,不是子类中覆盖定义的新方法 } }class Fa{ public static void pp(){ System.out.println("Fa.pp()"); } }class Son extends Fa{ public static void pp(){ System.out.println("Son.pp()"); } }

静态块没有覆盖定义的概念,如果父子类中都定义了静态块,一定是先执行父类中的静态块,然后运行子类中的静
态块
加载顺序为先父后子—先执行父类中定义的静态属性和静态块
然后执行初始化操作—先处理父类中的成员属性和非静态块,再执行父类构造器;后执行子类的定义内容

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值