“类的使用”编程规范(一)覆写(重写)、重载、隐藏、遮蔽、遮掩

“类的使用”编程规范(一)

1调用静态方法的注意事项
当子类继承父类的静态方法时,如果直接用实例来调用就会将子类中的静态方法隐藏,结果显示为父类的静态方法。

package Task;

public class car {
   public void run() {
	  System.out.println("没吃士力架,跑不起来");
   }
   public  static  void shape() {//父类静态方法
	   System.out.println("汽车人,变形 ,咔咔咔咔咔咔");
   }


}
 class Chevrolet extends car {
	public void run() {
	  System.out.println("士力架 横扫饥饿!!!");
	}
      public static  void shape() {//子类静态方法
	   System.out.println("汽车人,变形 ,咔咔咔咔咔咔,对不起我不是大黄蜂");
}
}
package Task;

public class carTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
       car car1=new car();
       car car2=new  Chevrolet();
       car1.run();
       car2.run();
       car1.shape();//实现父类静态方法
       car2.shape();//目标实现子类的静态方法
		
       System.out.println("----------------------------------------");
       car car3=new  Chevrolet();
       Chevrolet.shape();//使用类名来实现子类静态方法
	}
}

结果分析 :
实例化的car2 调用shape()方法,显示的结果是汽车人,变形 ,咔咔咔咔咔咔(父类的静态方法),说明car2调用静态方法实现的是父类的静态方法而不是子类静态方法。
在这里插入图片描述
Java里面覆写(重写)、重载、隐藏、遮蔽、遮掩 的区别。
重写:重写存在于父类和子类之间,当子类继承父类的方法时,重新定义继承父类的方法为了特定的行为 也就是子类覆盖父类的对象方法
重写时要加上@Override注解,当我们在写子类继承来的父类方法时,出现方法名,参数错误时,就会在编译时报错,使问题早早发现。

重载:同一个类中的函数或者方法有相同的名称,但是函数或者方法的参不同,里面的方法体内容可能相同也可能不同。
隐藏:父类中存在静态方法,子类继承父类的静态方法,就是子类覆盖父类的方法

package Task;
public class animal {
	private String name;
	public void animal(String name) {
		this.name=name;
	}
	public void eat() {
		System.out.println("狼吞虎咽");
	}
	public static void sleep() {
		System.out.println("闭上眼睛睡觉");
	} 
}
package Task;

public class animal2 extends animal{
    
     @Override
     public void eat() {//子类继承父类 重新定义继承父类的方法为了特定的行为 称为重写(覆写)
    	 System.out.print("细嚼慢咽");
     }
     //-------------------------------------------
     public void run(int n) {//同命不同参数 在同一个类里写不同的行为
       System.out.println("用几条腿跑");
     }
     public void run(String u) {//与第一个run不同的是参数类型
         System.out.println("没有腿 是蛇");
     }
     public void run(int m,int z) {//与第一个不同的是参数的个数
         System.out.println("是一条海蛇");
     }
     public static void sleep() {
    	 System.out.println("我是条鱼,我想闭眼但是我没有眼皮,只能睁着眼睛睡觉");
     }
     
     public static void main(String[] args) {
    	 animal.sleep();
    	 animal2.sleep();//隐藏 子类覆盖了父类的方法
     }
}

在这里插入图片描述

遮蔽:在同一个类中,声明的变量, 方法或类,和另一个变量, 方法或类重名,从而被遮挡,简单的例子就是(全局变量和局部变量同名,在一部分情况下全局变量被局部变量遮掩而失效)

 String name,weigth;
     public void animalName(String name) {
    	 this.name=name;//细节遮蔽
    	 String weigth;//最简单遮蔽
     }

遮掩 在同一个范围里,一个变量或一个类型可以遮掩一个包。

 String System;
     public static void main(String[] args) {
    	 System.out.println("System");
     }
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值