zoukankan      html  css  js  c++  java
  • 22.1 Extends 继承的 方法重写@Override 和 方法重载Overload 的区别

    /*
    * 继承中成员方法的特点
    * 子类中没有这个方法,调用父类的
    * 子类中重写了这个方法,调用子类的
    *

    方法的重写:在子父类当中,子类的方法和父类的完全一样,子类重写了父类的方法(覆盖),当子类重写了父类的方法之后,使用子类对象调用的就是子类的方法
    方法的重载:在一个类中,有多个重名的方法,但是其参数不一样(参数的个数,参数的类型,参数的顺序),和返回值无关

    * 方法重写的应用场景:当父类的方法不能完全满足子类使用,这个时候子类重写父类的方法,
    * 并可以在方法中使用关键字super调用父类的方法,这样做即可以保有父类的功能,也可以拥有子类特有的功能
    *
    * 方法重写的注意事项:
    * 不能重写父类私有的方法
    * 权限必须大于等于父类方法的权限
    *
    * 注解:@
    * @Override:可以验证子类中的方法是否和父类中的一样,若和父类方法不同则报错。(不加@Override不会报错但是方法就是新的方法不是继承父类的方法)

    public class Review {
        public static void main(String[] args) {
            NewPhone n = new NewPhone();
            n.call();
        }
    }
    
    class Phone {
        public void call() {
            System.out.println("打电话");
        }
    }
    
    class NewPhone extends Phone {
        @Override 
        public void call() {
            System.out.println("看电视");//重写父类中的call方法
            super.call();//使用super调用父类的方法
        }
    }

    输出

  • 相关阅读:
    转--- 一些概念不错的理解
    python 生产者 --- 消费者
    python GUI 之 tkinter
    读DataSnap源代码(二)
    读DataSnap源代码(一)
    FireDAC探索 (二)
    FireDAC内部初探
    C++Builder XE7 中“匿名”方法实现
    DelphiXE7 Datasnap TDSClientCallbackChannelManager内部实现初探
    C++ Builder使用VC DLL
  • 原文地址:https://www.cnblogs.com/longesang/p/11202612.html
Copyright © 2011-2022 走看看