zoukankan      html  css  js  c++  java
  • 十四、Java基础之方法重写/覆盖

    /*
    一、关于方法的重写/覆盖:
      1.什么时候需要方法重写?
       如果父类中的方法无法满足子类中的业务需求,需要将父类中的方法重写一次
      2.子类如果重写父类的方法之后,子类对象一定调用的方法是重写之后的方法
      3.发生方法覆盖的条件
      1.发生在具有继承关系的两个类之间
      2.必须具有相同的方法名,相同的返回值类型,相同的参数列表
      3.重写的方法不能比被重写的方法拥有更低的权限访问(父类中带有public---子类中不能丢失public;父类中没有public---子类中可带有public)
       4.重写的方法不能比被重写的方法抛出更宽泛的异常(异常机制)
       5.私有方法不能被覆盖
       6.构造方法无法被覆盖。因为构造方法无法被继承
      7.静态方法不存在覆盖
      8.覆盖指的是成员方法,和成员变量无关
        4.继承最基本的作用,代码重用
    4.继承最基本的作用:方法的重写
    */
    public class testMethod01 {
    
        public static void main(String[] args){
    
            Dog d=new Dog();
            d.m1(100);
            Animal a=new Animal();
            a.m1(66);
    
    
        }
    }
    //父类,动物
    class Animal{
    
        //Field
        int age;
        //Constructor
        Animal(){}
    
        public void m1(int age){
            System.out.println("动物的基本年龄是"+age);
        }
    }
    //子类,狗
    class Dog extends Animal{
    
        public void m1(int age){
            System.out.println("dog的基本年龄是"+age);
        }
    }

     二、覆盖与重写

    1.私有方法不能被覆盖
    2.构造方法无法被覆盖。因为构造方法无法被继承

    //父类
    class TestA {
    
        private void m1(){
            System.out.println("A----m1");
    
        }
        public static void main(String[] args){
    
            //多态
            TestA t=new TestB();
    
            t.m1();//A---m1
    
    
        }
    }
    //子类
    class TestB extends TestA{
    
        //尝试重写父类私有方法
        private void m1(){
            System.out.println("B-----m1");
    
        }
    }
    3.静态方法不存在覆盖
    public class Test02 {
        public static void main(String[] args){
    
            A a=new B();
    
            a.m1();//A-----m1
    
        }
    }
    
    class A{
        //静态方法
        public static void m1(){
            System.out.println("A-----m1");
        }
    }
    
    class B extends A{
        //尝试重写父类的静态方法
        public static void m1(){
            System.out.println("B-----m1");
        }
    }


  • 相关阅读:
    LNOI2014LCA(树链剖分+离线操作+前缀和)
    CDQ分治与整体二分学习笔记
    BJWC2018上学路线
    NOIP2013火柴排队
    SHOI2008仙人掌图(tarjan+dp)
    作诗(分块)
    COGS314. [NOI2004] 郁闷的出纳员
    bzoj 1691: [Usaco2007 Dec]挑剔的美食家
    COGS1533.[HNOI2002]营业额统计
    bzoj1208: [HNOI2004]宠物收养所
  • 原文地址:https://www.cnblogs.com/chushujin/p/10052988.html
Copyright © 2011-2022 走看看