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");
        }
    }


  • 相关阅读:
    HTML知识点链接
    Apache和PHP的安装
    MySql的安装
    MY_FIRSH_MODULE
    【PAT甲级】1053 Path of Equal Weight (30 分)(DFS)
    Atcoder Grand Contest 039B(思维,BFS)
    Codeforces Round #589 (Div. 2)E(组合数,容斥原理,更高复杂度做法为DP)
    Codeforces Round #589 (Div. 2)D(思维,构造)
    【PAT甲级】1052 Linked List Sorting (25 分)
    【PAT甲级】1051 Pop Sequence (25 分)(栈的模拟)
  • 原文地址:https://www.cnblogs.com/chushujin/p/10052988.html
Copyright © 2011-2022 走看看