不用多久,就会升职加薪,当上总经理,出任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. order by与索引

    ORDER BY 通常会有两种实现方法,一个是利用有序索引自动实现,也就是说利用有序索引的有序性就不再另做排序操作了.另一个是把结果选好之后再排序. 用有序索引这种,当然是最快的,不过有一些限制条件, ...

  2. hdu----(1075)What Are You Talking About(trie之查找)

    What Are You Talking About Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 102400/204800 K ...

  3. iOS视频直播初窥:高仿<喵播APP>

    视频直播初窥 视频直播,可以分为 采集,前处理,编码,传输, 服务器处理,解码,渲染 采集: iOS系统因为软硬件种类不多, 硬件适配性比较好, 所以比较简单. 而Android端市面上机型众多, 要 ...

  4. android之merge布局

    <merge />标签闪亮登场了.当LayoutInflater遇到这个标签时,它会跳过它,并将<merge />内的元素添加到<merge />的父元素里. 用& ...

  5. javascript DOM操作HTML文档

    文档对象模型(DOM)是W3C为解决浏览器混战时代不同浏览器环境之间的差别而制定的模型标准.W3C将文档对象模型定义为:是一个能让程序和脚本动态 访问和更新文档内容.结构和样式的语言平台.提供了标准的 ...

  6. async 和 await 以及Action Func

    C# 5.0中引入了async 和 await.这两个关键字可以让你更方便的写出异步代码. 看个例子: public class MyClass { public MyClass() { Displa ...

  7. Oracle 中的 decode

    含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN R ...

  8. 修改weblogic PermGen

    vim /weblogic/Oracle/Middleware/wlserver_10.3/common/bin/commEnv.sh 在第144行,增加环境变量:JAVA_VENDOR=Sun #根 ...

  9. apache本地网址配置

    1 实现类似于域名访www.a.com问本地的空间,而不是放在apache下的htocs文件夹下,或者是wamp下的www文件下 2 首先修改C盘WINDOWS\system32\drivers\et ...

  10. "QQ尾巴病毒"核心技术的实现原理分析

    声明:本文旨在探讨技术,请读者不要使用文章中的方法进行任何破坏. 2003这一年里,QQ尾巴病毒可以算是风光了一阵子.它利用IE的邮件头漏洞在QQ上疯狂传播.中毒者在给别人发信息时,病毒会自动在信息文 ...