zoukankan      html  css  js  c++  java
  • 成员变量的隐藏和方法的重写

    成员变量的隐藏和方法的重写
    1.成员变量的隐藏

    子类中声明的成员变量与父类中的成员变量相同,在子类内部,被子类继承到了父类中的成员变量将会被隐藏。(声明的成员变量类型可以不同,名字相同)
    2.方法的重写

    子类中声明的成员方法与父类中的成员方法完全相同(返回值类型、方法名称、参数列表),称子类重写了父类的成员方法。

    目的:改变父类的行为。
    3.方法的重写与方法的重载

    方法的重写是发生在子类与父类之间。方法的重载是发生一个类内部
    一、super

    this:代表本类对象(当前对象) super:代表父类

    在子类内部访问被子类隐藏的父类的成员变量
    在子类内部访问被子类重写的父类的成员方法
    调用父类的构造方法
    

    欲构建子类必先构建父类。当我们使用子类创建对象时,调用子类的构造方法,首先要调用父类的构造方法,来创建父类对象,然后再创建子类对象。

    super(catgory);//调用父类的构造方法

    注意:super必须是子类构造方法中的第一条语句。
    二、final

    终极的、最终的。

    修饰类:最终类、终极类,不能再被继承,不能有子类。(如果此类完美,没有必要再增加功能的情况下)
    修饰方法:final修饰的方法不允许子类重写。
    修饰变量:常量,final常量只能赋值一次
    

    三、对象的向上转型
    1.什么是上转型

    将子类对象赋值给父类的引用,

    动物 dw=new 老虎("老虎");

    dw是父类“动物”创建 一个引用(栈内存)。而new 老虎("老虎")是子类创建 的对象,将子类的对象赋值给了父类的引用。此时,称子类对象向上发生了转型。
    2.作用

    如果对象向上发生转型,则丢失其特有的行为。也就是说,在子类内部新声明的成员变量和成员方法将会丢失。

    上转型对象,调用子类重写的父类中的方法时,调用的是子类重写后的方法。
    四、抽象类、抽象方法
    1.抽象方法

    所有的动物都会叫,羊是咩咩叫,猫是喵喵叫,狗是汪汪叫

    public abstract void shout();

    这个方法只有方法的声明,没有方法的实现,很像一条语句,此时的方法,称为抽象方法。

    abstract:抽象类,它声明的方法称为抽象 方法,只有方法的声明,没有方法的实现(方法体)
    2.抽象类

    如果一个类内有一个或多个抽象方法,则该类必须声明为抽象类。

    public abstract class Anmial {

    //必须有一个方法,叫,但是这个方法实现,不同的子类其实现是不同的。
    
    public abstract void shout();
    

    }

    抽象类可以声明成员变量和普通的成员方法,还可以声明抽象方法。
    3.多态

    如果一个类继承一个抽象类,则必须实现抽象类中的抽象方法。

    抽象类的子类,如果不是抽象类,则必须实现其父类中的抽象方法。
    抽象类只能被继承,不能创建对象。
    抽象类的子类可以是实现类,也可以是抽象类。
    

    多态:同一个行为(父类规定的),不同的子类有不同的实现。
    4.抽象类的根本目的

    代码复用

    因为抽象类既可以有普通的成员方法,也可以有抽象的成员方法。因此,可以将多个子类相同的行为在父类中声明,不同的行为在子类中声明。





    Autor:VincentAdamNemessis E-mail:vincent5519@yeah.net QQ:3377299629 Wechat:ZTXLoveC3344
  • 相关阅读:
    高级排序
    递归
    Linked List
    中缀、后缀、前缀表达式
    队列(queue)
    栈(Stack)
    数组(Array)
    数据结构和算法
    常见排序
    开启
  • 原文地址:https://www.cnblogs.com/VincentAdam/p/86b9c681eeb536a366913bd257426a32.html
Copyright © 2011-2022 走看看