• Java方法重写与super关键字


    ----------siwuxie095

       

       

       

       

       

    方法的重写:

       

    1)在继承中也存在着重写的概念,其实就是子类定义了和父类同名的方法

       

    2)定义:方法名称相同,返回值类型相同,参数也相同

       

    3)重写限制:被子类重写的方法不能拥有比父类更严格的访问权限

       

    4)访问权限:private < default < public

       

    private 只能在当前类中进行访问,default 可以在同一包下进行访问

    (没有写 private public,即是 default),public 可以在整个工程下

    都可以访问〕

       

       

    代码:

       

    package com.siwuxie095.extendsdemo;

       

    class A{

    public void tell() {

    System.out.println("A---tell() 方法");

    }

     

    private void say(){}

     

    //前面什么都没有写的即是 default

    void print(){}

       

    }

       

       

    class B extends A{

    public void tell(){

    //调用父类的方法

    super.tell();

    System.out.println("B---重写 tell() 方法");

    }

    }

       

    public class ExtendsDemo04 {

       

    public static void main(String[] args) {

    B b=new B();

    b.tell();

    }

       

    }

       

       

    运行一览:

       

       

       

       

       

       

    super 关键字:

       

    强行调用父类方法的执行

     

    super 不一定在重写中使用,也可以表示方法是从父类继承而来的

       

       

    如:

    子类对象在实例化之前,先调用父类构造方法,后调用子类构造方法的原因:

       

    虽然没有手动去调用父类的构造方法,其实是省略了 super();,在编译时系统

    自动在子类的构造方法中加入 super();

       

       

    代码:

       

    package com.siwuxie095.extendsdemo;

       

       

    class Father{

    private String name;

    private int age;

     

    public Father() {

    System.out.println("父类的构造方法");

    }

     

    }

       

    class Son extends Father{

    public Son() {

    super();

    System.out.println("子类的构造方法");

    }

     

     

    }

       

    public class ExtendsDemo03 {

       

    public static void main(String[] args) {

    //实例化时,先执行父类的构造方法,再执行子类的构造方法

    Son s=new Son();

    }

       

    }

       

       

    运行一览:

       

       

       

       

       

    【made by siwuxie095】

  • 相关阅读:
    mac电脑 显示隐藏文件 取消显示隐藏文件
    xcode 无法下载 ios 8.3 simulator 提示权限不够
    socket 通讯 端口绑定 问题 解答
    description方法 oc 就是NSLog使用
    init 和 initialize 差距在哪里 oc
    类本质的是? 类的加载过程?
    分类和继承的区别 oc
    Masonry的简单使用
    cocopods
    swift UITextField
  • 原文地址:https://www.cnblogs.com/siwuxie095/p/6568341.html
Copyright © 2020-2023  润新知