不用多久,就会升职加薪,当上总经理,出任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. matlab(函数,变量)

  2. pycharm 导包

    如果需要requests包,python没有自带.可以执行命令:pip install requests,自动安装导入.

  3. 特征值提取之 -- TF-IDF值的简单介绍

    首先引用百度百科的话: "TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度.字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料 ...

  4. 使用js给页面显示的图片添加水印效果

    功能描述:使用Jquery 给页面的图片添加 版权信息水印. 这里的水印并不是真的把每一张图片上都添加了水印.而是在图片的上方添加了一个层,层中包含了水印图片效果就像是图片上加了水印. 功能原理:1, ...

  5. http 报文

    HTTP报文详解 HTTP有两种报文:请求报文和响应报文,具体介绍如下 一.HTTP请求报文 先上个图,细细分析 HTTP请求报文主要包括请求行.请求头部以及请求的数据(实体)三部分 请求行(HTTP ...

  6. java面向对象编程—— 第三章 程序流程控制

    3.1流程控制 三种基本技术可以改变程序的控制流程: ①   调用方法:调用方法将导致控制流程离开当前方法,转移到被调用的方法: ②   选择:java中有两种做出选择的机制:if/else语句和sw ...

  7. HDU 4890 One to Four(2014 Multi-University Training Contest 3)

    题意:给定一个长方形网格,要把它切成完全相同4个部分(这里完全相同指可以旋转平移后能重叠).把4个重叠后每个网格对应有四个数字相加,得到一种方案,所有格子中和最小就是该种方案的值,在多种方案中,最后问 ...

  8. 为ASP.NET MVC应用添加自定义路由

    这里,我们将学习如何给asp.net mvc应用添加自定义路由.用自定义路由来修改默认路由表. 对一些简单的asp.net mvc应用,默认的路由表就已经足够了.但是,当你需要创建特殊的路由时,就需要 ...

  9. GET /hello/fred/0926xxx572

    GET /hello/fred/0926xxx572 app.get('/hello/:name/:tel', function(req, res) { console.log(req.params. ...

  10. centos7 学习1 KDE配置中文

    安装kde桌面后没有中文,可以用以下方法配置中文 #yum list kde*chinese 会显示可以安装的包,我的显示如下 kde-l10n-Chinese.noarch -.fc14 @upda ...