继承

1.继承的概念

继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承(例如儿子继承父亲财产)类似。

继承可以理解为一个类从另一个类获取方法和属性的过程。如果类B继承于类A,那么B就拥有A的方法和属性。

2.继承的关键字

继承使用extends关键字。

示例:

 public class Dog extends Pet{
//狗类
}

3.在子类中访问父类成员

使用super关键字,super关键字代表父类对象

访问父类构造方法:

super();//访问无参构造。必须是子类无参构造的第一句。

实例化子类对象,默认先执行父类的无参数构造,再执行子类的无参数构造。

super(name,age,sex);//访问有参构造

实例化子类的有参构造时,使用super( )重复调用父类中的有参数构造,默认直接调用父类中的有参数构造,不会调用父类中的无参数构造

访问父类属性:

super.name;

访问父类方法:

super.print();

4.子类不能继承父类的成员有哪些?

1.private修饰的。

2.子类与父类不在同一包中,使用默认访问权限的成员。

3.构造方法。

5.访问修饰符

protected:可以修饰属性和方法,本类、同包、子类可以访问。

访问修饰符总结

符文修饰符 本类 同包 子类 其他
private    √        
默认(friendly)    √    √      
protected    √    √    √  
public    √    √    √    √

6.方法重写

1).方法重写:又称方法的覆盖(overriding)

2).方法重写必须满足一下要求:

重写方法和被重写方法必须具有相同的方法名。

       重写方法和被重写方法必须具有相同的参数列表。

      重写方法的返回值类型必须和被重写方法的返回值类型相同或是其子类

      重写方法不能缩小被重写方法的访问权限。
   3).方法重载与方法重写的区别
 
  位置 方法名 参数表 返回值 访问修饰符
方法重写 子类 相同 相同 相同或是其子类 不能比父类更严格
方法重载 同类 相同 不相同 无关 无关

7.抽象类

    定义抽象类关键字:abstract
    抽象类的优点:
     抽象类不能被实例化。
     可以有多个抽象方法。
8.抽象方法
    abstract也可定义方法为抽象方法。
    抽象方法优点:
     抽象方法没有方法体。
     抽象方法必须在抽象类中。
     子类必须重写父类中的抽象方法(除非子类也是抽象类)。
9.final修饰符
    final修饰符的作用。
      修饰的类不能在继承。
      修饰的方法不能被重写。
      修饰的属性为常量,不能更改初始值。
 

(完)

2018-02-28  12:46:04

作者:Call_迪迦

每日一句:

生活总是这样,不能叫人处处都满意。但我们还要热情地活下去。人活一生,值得爱的东西很多,不要因为一个不满意,就灰心丧气

JavaOOP-继承的更多相关文章

  1. JAVAOOP继承

    继承:修饰符 子类 extends 父类{    //类定义部分},不可以使用private和protected修饰类 减少代码量,实现无损替换 必须符合A is a B的关系 宝马  车 狗     ...

  2. JavaOOP 第二章继承

    一 继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具 ...

  3. JavaOOP 试题

    1) 以下属于OOP的特征有().   a)继承   b)封装   c)多态   d)隐藏   2) JavaOOP中的多态包括()   a) 方法重写 b) 方法重载   c) 方法隐藏 d) 以上 ...

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

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

  5. JavaScript的继承实现方式

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

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

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

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

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

  8. JS继承类相关试题

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

  9. JS继承之寄生类继承

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

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

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

随机推荐

  1. 安装JBoss Tool 出错

    安装JBoss Tool 出错 具体报错如下:

  2. OTG驱动分析(一)

    前一段时间弄了2个礼拜的OTG驱动调试,感觉精神疲惫啊.主要原因还是自己对OTG功能不了解造成的.现在终于完成但是对实质原理还有些模糊.所以自己重新总结一下.因为自己是菜鸟,所以用菜鸟的白话方式分析. ...

  3. org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'transactionManager'

    1.错误描述 五月 01, 2015 2:12:31 下午 org.hibernate.validator.util.Version <clinit> 信息: Hibernate Vali ...

  4. JavaScript利用append添加元素报错

    1.错误描述 在IE浏览器上: Uncaught HierarchyRequestError:Failed to excute 'appendChild' on 'Node':The new chil ...

  5. raid功能中spanning和striping模式有什么区别?

    RAID 0 又称为Stripe(条带化,串列)或Striping 它代表了所有RAID级别中最高的存储性能.RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可 ...

  6. HALCON学习-资料

    HALCON学习网: http://www.ihalcon.com/ 学习资料推荐博客: http://k594081130.blog.163.com/blog/static/218359013201 ...

  7. 什么是PostBack(译)

    什么是PostBack(译) What is a postback? 下面的内容是针对ASP.NET新手的 PostBack什么时候被引发? PostBack由客户端浏览器引发.通常是用户操作(点击按 ...

  8. CF484E Sign on Fence

    题意 给定一个长度为n的数列,有m次询问,询问形如l r k 要你在区间[l,r]内选一个长度为k的区间,求区间最小数的最大值 Sol 二分答案 怎么判定,每种数字开一棵线段树 某个位置上的数大于等于 ...

  9. Bzoj2442:修剪草坪

    Sol 一个很显然的暴力,设\(f[i]\)表示选到\(i\)的最优效率 每次枚举一段不与前面连续的长度小于\(k\)的区间转移来 # include <bits/stdc++.h> # ...

  10. Spring Boot初探之数据库访问

    一.背景 Spring boot是集服务发布.数据库管理.日志管理等于一身的服务开发框架:是微服务开发的全能小帮手.这章讲述一下如何使用spring boot访问MySQL数据库. 二.搭建基础环境 ...