复习面向对象--继承,重写,重载,抽象详解

继承:在现有的基础上去构建一个新的类。构建出来的新类被称作子类,现有类称作父类,子类会自动拥有父类所有。

继承的优点:

  提高了代码的可维护性;

  提高了代码的复用性;

  让类与类之间产生了继承关系

继承的弊端:

  类与类之间的耦合度过高;(接口可以用于解耦和)

继承的特点:

  java中只能够单继承,不能多继承,可以多层继承;

  所有类都直接或者间接的继承了Object类,Object类称为祖宗类;

继承的注意事项:

  使用关键字extends让类与类之间产生继承关系;

  父类私有的成员,子类不能继承;

  继承不可以随便继承,要符合什么是什么(苹果是水果的关系)

继承中的成员变量的关系:

  不同名称的变量:

    子类直接继承使用;

  相同名称的变量:

    默认访问的是子类自己的成员方法(this.),如果想访问父类的同名方法,请使用super.成员方法();

    super用来表示当前对象中包含的父类对象空间的引用;

    调用父类的成员变量:super.成员变量

    调用父类的成员方法:super.成员方法()

方法的重写(override):在子父类中出现了方法声明相同的情况,也叫做方法覆盖;

  方法重写注意事项:

    子类的方法声明要与父类相同;

    子类要重写方法的方法,方法的权限修饰符不能比父类的更低(>=)

    父类私有的方法,子类不能够进行方法的重写;

方法重载(ovreload):指在同一个类中,多个方法名称相同,他们的参数列表不同(个数不同,数据类型不同);

抽象:

  抽象方法:方法只有声明部分,没有方法体;

  抽象类:包含抽象方法的类,一定是抽象类;abstract修饰;

  抽象类的特点:

    1.抽象类与抽象方法都必须使用abstract来修饰;

    2.抽象类不能直接创建对象;

    3.抽象类中可以有抽象方法,也可以没有抽象方法(不会让其他人直接创建该类对象);

    4.抽象类的子类:实现了抽象方法的具体类、抽象类;

  

原文地址:https://www.cnblogs.com/yikuan-919/p/9532474.html

时间: 2024-07-31 10:26:42

复习面向对象--继承,重写,重载,抽象详解的相关文章

Spring Cache抽象详解

缓存简介 缓存,我的理解是:让数据更接近于使用者:工作机制是:先从缓存中读取数据,如果没有再从慢速设备上读取实际数据(数据也会存入缓存):缓存什么:那些经常读取且不经常修改的数据/那些昂贵(CPU/IO)的且对于相同的请求有相同的计算结果的数据.如CPU--L1/L2--内存--磁盘就是一个典型的例子,CPU需要数据时先从L1/L2中读取,如果没有到内存中找,如果还没有会到磁盘上找.还有如用过Maven的朋友都应该知道,我们找依赖的时候,先从本机仓库找,再从本地服务器仓库找,最后到远程仓库服务器

【译】UNIVERSAL IMAGE LOADER. PART 3(四个DisplayImage重载方法详解)

在之前的文章,我们重点讲了Android-Universal-Image-Loader的三个主要组件,现在我们终于可以开始使用它了. Android-Universal-Image-Loader有四个重载方法 void displayImage(String url, ImageView view) void displayImage(String url, ImageView view, DisplayImageOptions options) void displayImage(String

008-Scala主构造器、私有构造器、构造器重载实战详解

008-Scala主构造器.私有构造器.构造器重载实战详解 Scala主构造器实战 无参数的主构造器 分析 1.name 需要赋初值,一般通过占位符来代表空值 2.private 声明私有的age 生成的getter/setter方法也是私有的;不加则私有的age生成公有的getter/setter方法 3.private[this] 表示是只属于当前的实例本身,别人无法通过实例访问,也就是说再实例化对象也不可以访问此属性 4.def定义辅助构造器(重载构造器),其他的重载构造器必须调用主构造器

面向对象编程(十六)——内部类详解

一.内部类(innerclasses) 一般情况,我们把类定义成独立的单元.有些情况下,我们把一个类放在另一个类的内部定义,称为内部类. 在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类.广泛意义上的内部类一般来说包括这四种:成员内部类.局部内部类.匿名内部类和静态内部类. 1. 内部类的作用 内部类提供了更好的封装,只能让外部类直接访问,不允许同一个包中的其他类直接访问. 内部类可以直接访问外部类的私用属性.内部类被当成其外部类的成员.但是外部类不能访问内部类的

C++中重载函数详解

函数的重载详解 什么时函数重载: 函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数.重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处. 1.是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数“个数” 或 “类型” 或 “顺序”)必须不同,常用来处理实现功能类似数据类型不同的问题(这也是C++与C语言的最重要区别) 1 int Ad

java重写与重载的详解与区别

重写(Override)重写是子类对父类的允许访问的方法的实现过程进行重新编写!返回值和形参都不能改变.即外壳不变,核心重写!重写的好处在于子类可以根据需要,定义特定于自己的行为.也就是说子类能够根据需要实现父类的方法.在面向对象原则里,重写意味着可以重写任何现有方法.实例如下:class?Animal{????public?void?move(){??????System.out.println("动物可以移动");???}}?class?Dog?extends?Animal{???

js原型链继承的傻瓜式详解

本文争取用最简单的语言来讲解原型链继承的OOP原理 0.如果对原型继承还没有大致了解,完全一头雾水,请先阅读 <JavaScript高级程序设计>第六章最后部分的寄生组合式继承 或者_廖雪峰js教程里面面向对象部分的原型承部分https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/0014344997013405abfb7f0e1904a04ba6898a384b1e925000 1

5、抽象详解

转载请注明出处 --爱技术的华仔(http://blog.csdn.net/yunhua_lee) 抽象的中文概念非常形象,简单来说就是“抽取出来比较像的部分”. 那么,在面向对象的领域里,抽取什么东西比较像的部分? 还记得前面给类下的定义么?我们一起来回顾一下:类就是一组相似事物的统称. 再结合我们对象的定义:对象就是一个具体的类,一个真实存在的类. 我们就很容易发现了抽象的详细含义:抽取多个对象或者类中比较像的部分. 注: 史派克:<猫和老鼠>中的斗牛犬 这里的抽象分为两个层次: 第一个层

面向对象的几种方法详解(后)《未完成版》

字面量创建的方式使用 constructor 属性不会指向实例,而会指向 Object,构造函数创建的方式则相反. function Box(){} //使用字面量的方式创建原型对象,这里{}就是对象,是Object,new Object就相当于{} Box.prototype={ constructor:Box, //强制指向Box name:'lee', age:100, run:function(){ return this.name+this.age+"运行中..."; } }