码迷,mamicode.com
首页 > 编程语言 > 详细

Java基础-继承

时间:2018-10-31 00:04:33      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:包含   构造函数   rac   style   构造方法   abstract   rgs   clone   函数   

使用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。

Java基础-继承

标签:包含   构造函数   rac   style   构造方法   abstract   rgs   clone   函数   

原文地址:https://www.cnblogs.com/chris-jichen/p/9880200.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!