zoukankan      html  css  js  c++  java
  • 重载和重写

    1.1继承中方法重写
    子类中出现与父类一模一样的方法时,会出现覆盖操作,也称为override重写、复写或者覆盖。(注意:是完全相同的)

    class Fu
    {
    public void show()
    {
    System.out.println("Fu show");
    }
    }
    class Zi extends Fu
    {
    //子类复写了父类的show方法
    public void show()
    {
    System.out.println("Zi show");
    }
    }
    

      

    当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容。
    在子类中,访问父类中的成员方法格式:
    super.父类中的成员方法();

    public class Test {
    public static void main(String[] args) {
    new NewPhone().showNum();
    }
    }
    
    //手机类
    class Phone{
    public void sendMessage(){
    System.out.println("发短信");
    }
    public void call(){
    System.out.println("打电话");
    }
    public void showNum(){
    System.out.println("来电显示号码");
    }
    }
    
    //智能手机类
    class NewPhone extends Phone{
    
    //覆盖父类的来电显示号码功能,并增加自己的显示姓名和图片功能
    public void showNum(){
    //调用父类已经存在的功能使用super
    super.showNum();
    //增加自己特有显示姓名和图片功能
    System.out.println("显示来电姓名");
    System.out.println("显示头像");
    }
    }
    

      

    1.2方法重写的注意事项:
    子类方法覆盖父类方法,必须要保证权限大于等于父类权限

    class Fu(){	
    void show(){}
    public void method(){}
    }
    class Zi() extends Fu{
    public void show(){} //编译运行没问题
    void method(){} //编译错误
    }	
    

      



    写法上稍微注意:必须一模一样:函数的返回值类型 函数名 参数列表都要一样
    总结:当一个类是另一个类中的一种时,可以通过继承,来继承属性与功能。如果父类具备的功能内容需要子类特殊定义时,进行方法重写。

    1.3继承中子类中出现与父类重名的成员变量
    当子父类中出现了同名成员变量时,在子类中若要访问父类中的成员变量,必须使用关键字super来完成。
    在子类中,访问父类中的成员变量格式:
    super.父类中的成员变量

    class Fu
    {
    //Fu中的成员变量。
    int num = 5;
    }
    class Zi extends Fu
    {
    //Zi中的成员变量
    int num = 6;
    void show()
    {
    //子父类中出现了同名的成员变量时
    //在子类中需要访问父类中非私有成员变量时,需要使用super关键字
    //访问父类中的num
    System.out.println("Fu num="+super.num);
    //访问子类中的num2
    System.out.println("Zi num2="+this.num);
    }
    }
    class Demo5 
    {
    public static void main(String[] args) 
    {
    Zi z = new Zi(); //创建子类对象
    z.show(); //调用子类中的show方法
    }
    }	
    

      



    1.4this与super调用普通成员与构造方法
    调用普通成员:
    this.成员变量 可以访问本类对象的成员变量
    super.成员变量 可以访问父类对象的成员变量
    this.成员方法() 可以访问本类对象的成员方法
    super.成员方法() 可以访问父类对象的成员方法

    调用构造方法:
    this(其他参数) 可以访问本类其他的构造方法
    super(其他参数) 可以访问父类其他的构造方法

    默认子类调用父类构造方法
    子类的每个构造方法中均有默认的super(),调用父类的空参构造。手动调用父类构造会覆盖默认的super();

    2.1方法重载
    方法重载概述:
    在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
    方法重载特点:
    与返回值类型无关,只看方法名和参数列表
    在调用时,虚拟机通过参数列表的不同来区分同名方法
    基本使用:

    public class Demo01Method {
    public static void main(String[] args) {
    int a = 10;
    int b = 20;
    
    // 求和
    int result = sum(a, b);
    System.out.println("result:" + result);
    
    int c = 30;
    // 求和
    result = sum(a,b,c);
    System.out.println("result:"+result);
    }
    
    //两个float类型的数据求和
    public static float sum(float a,float b) {
    return a + b;
    }
    
    // 三个整数的求和
    public static int sum(int a,int b,int c) {
    return a + b + c;
    }
    
    // 两个整数的求和
    public static int sum(int a, int b) {
    return a + b;
    }
    }
    

      

    人生就像一场路途,尝遍酸甜苦辣,方知人生苦甜.
  • 相关阅读:
    【转】Uiautomator Api浅析
    【转】UiAutomator简要介绍
    后台自动启动appium
    adb通过wifi连接Android设备
    Python字符串处理和输入输出
    OJ题目输出的生成
    Weka的使用和二次开发(朴素贝叶斯及其属性选择)
    PointNet++论文理解和代码分析
    VGG-16复现
    二维偏序-最长上升子序列的两种求解方式
  • 原文地址:https://www.cnblogs.com/zennon/p/8087936.html
Copyright © 2011-2022 走看看