• Java_oop_继承


    不用多久,就会升职加薪,当上总经理,出任CEO,迎娶白富美,走上人生巅峰。想想还有点小激动呢,

    OK,睡醒了,我们说到继承就先来学习一下Java中继承的语法。

    public SubClass extends SuperClass{
      //类定义部分
    }

    详细介绍一下:

          继承(inheritance)通过 extends 关键字实现,其中SubClass称为子类,SuperClass称为父类,基类,或超类。

    修饰符如果是public,则该类在整个项目中可见;若无则该类只能在当前包可见;不可以使用private和protected修饰类。

    为了初学者所以再次详细一点说:

          继承是面向对象的三大特性之一,是Java中实现代码重用的重要手段之一。Java中只支持单继承,每个类只能有一个直接父类。

    继承表达的意思是   is→ a 的关系,或者说是一种特殊和一般的关系,如Dog is Pet。同样,学生可以继承人,苹果继承水果等等。。。

          在Java中,所有的Java类都直接或间接的继承了Java.lang.Object类。Object类是所有Java类的祖先。在定义一个类时,如果没有

    使用extends关键字,那么这个类直接继承Object类。

    下面我用表格叙述一下访问修饰符的访问权限

    访问修饰符 本类 同包 子类 其他
    private      
    默认(frendly)    
    protected  
    public

    抽象类

    举一个例子:

    Pet pet = new Pet("贝贝");
    pet.print();
    //Pet这里是宠物的缩写
    //这里创建Pet是没有意义的,因为在实际生活中没有一种动物是宠物。
    //宠物只是我们抽象出来的一个概念

    那么如何限制它不被实例化呢?
    我们可以使用Java中的抽象类来实现,用abstract来修饰Pet类,抽象类是不能通过New实例化:

    public abstract class Pet{
    //属性省略
    }

    final修饰符

    用final修饰的类,不能再被继承,代码如下:

    final class Penguin{
    class SubPenguin extends Penguin{
    //会出现错误
    }
    }

    同时用final修饰的方法不能被子类重写。

    final和abstract是功能相反的两个关键字,可以对比的记忆。

    abstract 可以用来修饰类和方法,不能用来修饰属性和构造方法,方法可以用来修饰类,方法和属性,不能修饰构造方法。

    java提供的很多类都是final类,如String类,Math类,它们不能再有子类。object类中一些方法,如果getClass(),notify(),wait()都是final方法

    只能被子类继承而不能重写,但是hashCode(),toString(),equals(Objecg obj)不是final方法,可以被重写。

  • 相关阅读:
    asp .net 文件浏览功能
    Angular组件间的数据传输
    Angular自定义表单验证
    asp .net Cookies
    带参跳转其他controller
    asp .net 页面跳转
    发送邮件
    ubuntu之Matlab安装
    清华宿舍楼
    ubuntu窗口打开指定文件夹
  • 原文地址:https://www.cnblogs.com/System-out-println/p/5398955.html
Copyright © 2020-2023  润新知