zoukankan      html  css  js  c++  java
  • Day09_面向对象 方法重写

    方法重写

    重写:需要有继承关系,子类重写父类的方法!

    1. 方法名必须相同
    2. 参数列表必须相同
    3. 修饰符:范围可以扩大但不能缩小: public>Protected>Default>private
    4. 抛出的异常:范围,可以被缩小,但不能扩大:ClassNotFoundException-->Exception(大)

    重写,子类的方法和父类必要一致:方法体不同!

    为什么要重写:

    1. 父类的功能,子类不一定需要,或者不一定满足!

      Alt + Insert:Override;

    静态方法

    package com.oop.Demo05;
    
    public class B {
        public static  void test(){
            System.out.println("B->test()");
        }
    }
    
    package com.oop.Demo05;
    
    public class A extends B{
        public static void test(){
            System.out.println("a->test()");
        }
    }
    
    package com.oop;
    
    
    import com.oop.Demo05.A;
    import com.oop.Demo05.B;
    
    public class Application {
    	//静态的方法和非静态的方法区别很大!
    		//静态方法:方法的调用只和左边,定义的数据类型有关
        public static void main(String[] args) {
            A a = new A();
            a.test();
            B b = new A();
            b.test();
        }
    }
    
    //运行结果
    a->test()
    B->test()
    
    Process finished with exit code 0
    

    非静态方法

    package com.oop.Demo05;
    
    //重写都是方法的重写,和属性无关
    public class B {
        public void test(){
            System.out.println("B->test()");
        }
    }
    
    package com.oop.Demo05;
    
    //继承
    public class A extends B{
        //Override 重写
        @Override   //注解:有功能的注释!
        public void test() {
            System.out.println("A->test()");
        }
    }
    
    package com.oop;
    
    
    import com.oop.Demo05.A;
    import com.oop.Demo05.B;
    
    public class Application {
        //非静态:重写
        public static void main(String[] args) {
    
            A a = new A();
            a.test();
    
            //父类的引用指向了子类
            B b = new A();//子类重写了父类的方法
            b.test();//B
        }
    }
    
  • 相关阅读:
    让Dreamweaver支持cshtml (MVC Razor环境)
    href="#"与href="javascript:void(0)"的区别
    ASP.NET MVC 4 中Razor 视图中JS无法调试 (重要)
    03011_HttpServletRequest
    1004. 成绩排名 (20)
    1003. 我要通过!(20)
    C语言文件读写命令fprintf和fscanf
    1002. 写出这个数 (20)
    1001. 害死人不偿命的(3n+1)猜想 (15)
    汇编in和out实例解析
  • 原文地址:https://www.cnblogs.com/lemonlover/p/14037628.html
Copyright © 2011-2022 走看看