zoukankan      html  css  js  c++  java
  • Java基础-继承

    使用super关键字

    • 使用super调用超类的构造函数
    • super引用超类的方法或者实例变量

    构造函数的调用时机

      在类层次中,从超类到子类按照继承顺序调用构造函数。

    动态方法调度

      实现原理:当通过超类引用调用重写的方法时,Java根据在调用时所引用对象的类型来决定调用哪个版本的方法。

      

    public class A {
        void callme() {
            System.out.println("Inside A's callme method.");
        }
    }
    
    public class B extends A {
        @Override
        void callme() {
            System.out.println("Inside B's callme method.");
        }
    }
    
    public class C extends A {
        @Override
        void callme() {
            System.out.println("Inside C's callme method.");
        }
    }
    
    public class Dispatch {
        public static void main(String args[]) {
            A a = new A();
            B b = new B();
            C c = new C();
            A r;
    
            r = a;
            r.callme();
    
            r = b;
            r.callme();
    
            r = c;
            r.callme();
        }
    }
    
    result:
            Inside A's callme method. 
            Inside B's callme method.
            Inside C's callme method.

    使用抽象类

      抽象方法

        

    abstract type name(parameter-list);

      抽象类:包含一个或者多个抽象方法的类。

        注意点:

    • 不同通过new运算实例化抽象类
    • 不能声明抽象的构造方法
    • 不能声明抽象的静态方法

    在继承中使用final关键字

    • 使用final关键字阻止重写
    • 使用final关键字阻止继承

    Object类

    Object是一个特殊的类,所有的其他类都是Object的子类。

    Object类定义了以下方法

    方法 用途
    Object clone() 创建一个和将要赋值的对象完全相同的新对象
    boolean equals(Object object) 判断一个对象是否和另一个对象相等
    void finalize() 在回收不再使用的对象之前调用
    Class<?> getClass() 在运行时获取对象所属的类
    int hashCode() 返回与调用对象相关联的散列值
    void notify() 恢复执行在调用对象上等待的某个线程
    void notifyAll() 恢复执行在调用对象上等待的所有线程
    String toString() 返回一个描述对象的字符串
    void wait() 等待另一个线程的执行
    void wait(long milliseconds)
    void wait(long milliseconds, int nanoseconds)

    其中getClass(), notify(), notifyAll()以及wait()方法都被声明为final。

  • 相关阅读:
    字符串截取例子 大小写转换 拼接例子 把oc转成c语言
    字符串比较 是否相同 大小 创建字符串 例子
    数组于字典:把多个字典放到数组中
    考核7
    Delphi 单元不能被循环引用
    Delphi ADOQuery无法更新定位行问题(其它数据库访问控件类似)
    SQL远程服务器操作数据
    s​p​c​o​m​m​属​性​详​解
    dxSkinController动态调入皮肤
    RegisterClass与GetClass
  • 原文地址:https://www.cnblogs.com/chris-jichen/p/9880200.html
Copyright © 2011-2022 走看看