zoukankan      html  css  js  c++  java
  • java 子类与父类

    子类是由继承得到的类,被继承的类就是父类,子类与父类是"is-a"关系。

    一、子类与父类

    1. 子类

    (1)子类定义

    class 子类名 extends 父类名 {...}

    (2)子类继承性

    子类继承了父类的所有属性和除了构造方法的其余方法。

    • 子类与父类在同个包中:子类继承父类除了private成员
    • 子类与父类在不同包中:子类继承父类除了private、友好成员
    • protected成员:若子类与祖先类同包,子类可访问

    2. 父类

    所有类的祖先类是Object类(java.lang.Object)。

    3. 子类与父类

    父类可有0或多个子类,子类只能有一个父类。

    obj instanceof Class;    // 若obj是Class的子类, 返回True, 否则返回False

    二、子类

    1. 隐藏属性

      当子类中新声明的变量与父类的成员变量同名时,子类中继承的变量被隐藏,若想使用,可通过继承的方法调用。

    2. 隐藏方法——方法重写

      当子类中新声明的方法与父类的方法同名时,为方法重写,表示实现与父类不同的行为,但方法名相同。

      方法重写时,方法名、返回值类型、参数列表都必须相同,访问权限可升不可降,并且重写的方法不能操作隐藏的成员。

    三、子类与子类对象

      子类对象的用法与普通类的对象相同。

      子类对象不能操作隐藏的成员,可通过继承的方法访问。

    四、父类与子类对象

    1. 上转型对象

      由父类People扩展的子类Chinese,将子类创建的对象Lina的引用值赋给父类创建的对象person,person即为对象的上转型对象。

    class People {...}
    class Chinese extends People {...}
    class E {
        public static void main(String args[]) {
            Chinese Lina = new Chinese();
            People person = Lina;
    //      People person = new Chinese();  // 以上两句类似此句
        }
    }

      在上面代码的基础上,以下一语句是错误的。因为可以说Chinses类是People类,但不能说People类是Chinses类(如老虎是动物[✔],动物是老虎[✘])。

            Chinese Lisa = new People();  // 此句错误

    2. 上转型对象的规则

    (1)上转型对象不存在子类新增的变量或方法,只有继承的、隐藏的变量和继承的、重写的方法。

    (2)若子类重写了方法,则上转型对象调用的是重写的方法。

    (3)当子类重写的方法是静态方法时,上转型对象调用的是父类的静态方法。

    (4)可将上转型对象强制转化为子类对象,此时该对象具备子类新增的属性和行为。

  • 相关阅读:
    Nagios经check_http监视web申请书server多个tomcat维修
    一个测试SQL2005数据库连接JSP档
    android 36 线程通信
    android 35 ListView增删改差
    android 34 ListView进阶
    android 33 对话框控件
    android 32 Gallery:横着滚动的列表
    android 31 GridView
    android 30 下拉列表框:ArrayAdapter和Spinner.
    android 29 ArrarAdapter数组适配器
  • 原文地址:https://www.cnblogs.com/bpf-1024/p/12827557.html
Copyright © 2011-2022 走看看