zoukankan      html  css  js  c++  java
  • 《Java中方法的重写》

     1 //方法的重写
     2 /*
     3 注意:方法的重写要遵循“两同两小一大”规则
     4         “两同”即方法名相同、形参列表相同;
     5         “两小”(1)指的是子类方法返回值类型比父类方法的返回值类型更小或相等,【什么意思?】
     6               (2)子类方法声明抛出的异常类应比父类方法声明抛出的异常类更小或相等。
     7         “一大”指的是子类方法的访问权限应比父类方法的访问权限更大或者相等。
     8 
     9 特别注意:覆盖方法和被覆盖方法要么都是类方法,要么都是实例方法,不能一个是类方法,一个是实例方法。
    10 例如下面代码会引起错误:
    11 class BaseClass
    12 {
    13     public static void test(){code...}
    14 }
    15 class SubClass extends BaseClass
    16 {
    17     public void test(){code...}
    18 }
    19 */
    20 class Bird
    21 {
    22     public void fly()
    23     {
    24         System.out.println("我在天空自由自在的飞翔...");
    25     }
    26     
    27     public static void Test()
    28     {
    29         System.out.println("父类的静态方法运行...");
    30     }
    31 
    32     private void Demo()
    33     {
    34         System.out.println("我在父类中是私有的,外边的类看不见我...");
    35     }
    36 }
    37 
    38 public class Ostrich extends Bird 
    39 {
    40     //重写Bird类的fly()方法。
    41     public void fly()
    42     {
    43         //通过super调用父类的方法。
    44         //super.fly();
    45         System.out.println("我只能在地上奔跑...");
    46     }
    47 
    48     /*
    49     如果我在子类中定义了下面的方法,则是子类和父类的方法的重载而不是重写了,
    50     因为如果是重写的,则要求方法名也要相同。
    51 
    52     //重载Bird类的fly()方法。
    53     public void fly(int x)
    54     {
    55         //通过super调用父类的方法。
    56         super.fly();
    57         System.out.println("我只能在地上奔跑..."+x);
    58     }
    59     */
    60 
    61     //重写Bird类的Test()方法
    62     public static void Test()
    63     {
    64         //通过类名调用父类中的Test()静态方法.
    65         Bird.Test();
    66         System.out.println("我覆盖了父类中的静态方法...");
    67     }
    68 
    69     public static void Demo()
    70     {
    71         System.out.println("我是子类特有的方法,不是继承自父类的,因为父类是私有的!");
    72     }
    73 
    74     public static void main(String[] args) 
    75     {
    76         Ostrich os = new Ostrich();
    77         os.fly();
    78         os.A();
    79 
    80         Test();//前面省略了类名Ostrich
    81 
    82         Demo();
    83     }
    84 }
  • 相关阅读:
    hdu 4107 Gangster 线段树(成段更新)
    hdu 3037 Saving Beans (lucas定理)
    hdu 3944 DP? (Lucas 定理)
    hdu 5038 Grade 水
    ASP.NET Core 配置 MVC
    ASP.NET Core 静态文件
    ASP.NET Core 异常和错误处理
    ASP.NET Core 中间件
    ASP.NET Core 项目配置 ( Startup )
    ASP.NET Core 基本项目目录结构
  • 原文地址:https://www.cnblogs.com/sun-/p/5448055.html
Copyright © 2011-2022 走看看