不用多久,就会升职加薪,当上总经理,出任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方法,可以被重写。

Java_oop_继承的更多相关文章

  1. javaScript的原型继承与多态性

    1.prototype 我们可以简单的把prototype看做是一个模版,新创建的自定义对象都是这个模版(prototype)的一个拷贝 (实际上不是拷贝而是链接,只不过这种链接是不可见,给人们的感觉 ...

  2. JavaScript的继承实现方式

    1.使用call或apply方法,将父对象的构造函数绑定在子对象上 function A(){ this.name = 'json'; } function B(){ A.call(this); } ...

  3. javascript中的继承与深度拷贝

    前言 本篇适合前端新人,下面开始...... 对于前端新手来说(比如博主),每当对js的对象做操作时,都是一种痛苦,原因就是在于对象的赋值是引用的传递,并非值的传递,虽然看上去后者赋值给了前者,他们就 ...

  4. 谈谈一些有趣的CSS题目(四)-- 从倒影说起,谈谈 CSS 继承 inherit

    开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...

  5. JS继承类相关试题

    题目一: //有关于原型继承的代码如下:function Person(name) {   this.name = name;}Person.prototype = {     getName : f ...

  6. JS继承之寄生类继承

    原型式继承 其原理就是借助原型,可以基于已有的对象创建新对象.节省了创建自定义类型这一步(虽然觉得这样没什么意义). 模型 function object(o){ function W(){ } W. ...

  7. JS继承之借用构造函数继承和组合继承

    根据少一点套路,多一点真诚这个原则,继续学习. 借用构造函数继承 在解决原型中包含引用类型值所带来问题的过程中,开发人员开始使用一种叫做借用构造函数(constructor stealing)的技术( ...

  8. JS继承之原型继承

     许多OO语言都支持两种继承方式:接口继承和实现继承.接口继承只继承方法签名,而实现继承则继承实际的方法.如前所述,由于函数没有签名,在ECMAScript中无法实现接口继承.ECMAScript只支 ...

  9. 深入浅出JavaScript之原型链&继承

    Javascript语言的继承机制,它没有"子类"和"父类"的概念,也没有"类"(class)和"实例"(instanc ...

随机推荐

  1. hdu 1695 GCD(莫比乌斯反演)

    GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  2. 在汇编代码中调用C函数

    对于ARM体系来说,不同语言撰写的函数之间相互调用(mix calls)遵循的是 ATPCS(ARM-Thumb Procedure Call Standard),ATPCS主要是定义了函数呼叫时参数 ...

  3. wordpress为不同的category添加不同的模板

    在category中新建了三个:NEWS,EVENTS,BLOG,当点击这三个category时想使用不同的template生成不同风格的页面,该怎么实现? 一般来说,wordpress的catego ...

  4. C++的vector学习abc

    开始学习和使用vector了,用到之后再去学似乎神迹的感觉啊,就像跑一下就能给个糖吃哈哈 百度上的六种初始化的方法就不再说了,那些方法都很对. 如果没有值初始化,系统会自行初始化,目前我遇到的是用脚标 ...

  5. 在JSP中使用jQuery的冲突解决(收集整理)

    在JSP中使用<jsp:include page="somethingPage.jsp"></jsp>来嵌套页面的时候,会出现jQuery之间的冲突 解决办 ...

  6. lucene索引文件格式

    转自:http://blog.csdn.net/whuqin 本文介绍下lucene生成的索引有哪些文件组成,每个文件包含了什么信息.基于Lucene 4.10.0. 数据结构 索引(index)包含 ...

  7. linux copy

    cp -ri 131115-6/* /web/www/attachment/  把13这个文件夹下面所有的文件和文件夹复制到 /web/www/attachment cp -a  a  /web/ww ...

  8. loadrunner 参数化数据更新方式

    数据分配方式: Select next row[选择下一行]: 顺序(Sequential):按照参数化的数据顺序,一个一个的来取. 随机(Random):参数化中的数据,每次随机的从中抽取数据. 唯 ...

  9. 一个漂亮灵活的PHP图片验证码

    <?php class Imagecode{ private $width ; private $height; private $counts; private $distrubcode; p ...

  10. Android打开新的Activity并同时关闭当前Activity

    Intent it = new Intent(); it.setClass(EditActivity.this, MainActivity.class); it.setFlags(Intent.FLA ...