敲黑板,面向对象的三大特征: 封装、继承和多态。 封装 封装性 封装就是隐藏底层的实现细节,只提供公有的接口供外界访问, 这样当底层实现细节改变的时候,就不会对外界造成影响。 私有属性 在类的设计角度,我们可以将属性或方法(类的成员)定义为私有,来实现封装。 私有成员只能在定义类的内
一、Map集合的特点 一次添加一对元素,Collection一次添加一个元素。 Map也被称为双列集合,Collection集合称为单列集合。 其实map集合中存储的就是键值对。 map集合中必须保证键的唯一性。 常用的方法: 1.添加 value put(key,value); //返回前一个和key关联的值,如果没有,
面向对象编程允许从已经存在的类中定义新类,这称为继承。继承是面向对象编程的一个重要特征。假设在QQ宠物游戏中要定义一个类,对狗狗,企鹅还有猪猪建模。这些类有很多共同的特性。我们可以使用继承来编码冗余并使系统更易于理解和易于维护。 父类和子类 使用类来对同一类型
*一个类继承多个类 语法:class 子类:继承方式 父类1 ,继承方式 父类2** #include <iostream> using namespace std; class base1 {public: base1() { a = 200; } int a; }; class base2 {public: base2() { a = 200; } int a; }; class son :public base1, public
策略模式 策略模式将围绕着一个关于鸭子的问题讲解 有各种鸭子(如野鸭、水鸭、北京鸭,鸭子有各种行为,如飞行、叫等)显示鸭子信息 传统解决方案 编写一个抽象的父类Douck,编写各种鸭子并且继承Douck Duck Duck:一个抽象的父类里面提供了鸭子的模式实现 WildDucks/WaterDuck
第一章 数据结构 数据存储的常用结构:栈、队列、数组、链表、红黑树。 栈:入口和出口在同一侧,先进后出;队列:入口和出口在集合的两侧,先进先出;数组: 查询快:数组地址连续,通过数组首地址找到数组,通过数组索引快速查找元素; 增删慢:数组的长度是固定的,要增删元素,必须创建一个新数组,把原
文章目录 Java面向对象的三大基本特征(封装、继承、多态)1.Java访问权限修饰符2.封装2.1封装问题引例2.2封装问题实例2.3私有属性的Setter和Getter方法2.4方法的封装使用2.5使用构造函数实现数据的封装2.6 封装问题的总结 3.继承3.1生活中的继承3.2为什么需要继承?3.3如何实现
类的创建(自定义类) 类的构造方法 构造方法是一种特殊的方法,对象的创建就是通过构造方法来完成的,其主要功能是对象的实例化和属性的初始化,当类实例化一个对象时会自动调用构造方法。构造方法的特点: 没有返回值;名称和类名完全相同(包括大小写);任何一个类都有隐式的默认的无参构
Java 中动态代理(基于接口和基于子类) 参考:https://www.cnblogs.com/gonjan-blog/p/6685611.html 零:前提知识 0.1、代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消
方法重写@Overried概念 方法重写存在于有继承关系的子类中指子类继承父类的方法,方法的返回值,方法名,参数类型,个数都相同若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。 如需父类中原有的方法,可使用super关键字,该关键字引用
继承 继承的本质是对某一批类的抽象,从而实现对现实世界最好的建模。 extands的意思是“扩展”。子类是父类的扩展。 Java中类只有单继承,没有多继承。 继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。 继承关系的两个类,一个为子类(派生类),
public class Parent { static { System.out.println("parent static"); } { System.out.println("parent code block"); } public Parent(String name){ System.out.println("parent init");
重写父类方法 子类扩展了父类,子类是一个特殊的父类。有些时候我们在扩展一个类的子类时,子类的方法与父类不尽相同,比如鸟类中不是所有的鸟都能飞翔,比如鸵鸟,这种情况下,鸵鸟子类继承父类鸟时,需要重写父类中飞翔的方法。比如下面的例子。 public class Bird { private String
背景在开发中,你肯定有遇到过这样一种场景:你知道某个方法的关键步骤以及执行顺序,但是里面有的具体步骤并清楚。你会怎么做?比如你早上起床到公司,我们分解步骤:“起床洗漱吃早餐乘坐交通工具到公司”我们已经确定这个步骤了,但是不同的人里面的细节可能会不一样。比如小明早餐吃的面包,小
package dependenceInversionPrinciple; /** * 依赖倒转原则 * * @author LiMing E-mail:1151143484@qq.com * @date 2017年6月11日 上午9:52:36 */ public class DependenceInversionPrinciple { // 里氏替换原则 /* * 里氏替换原则(Liskov Substit
package templateMethod; /** * 模板方法: 定义一个操作中的算法的骨架,而将步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。 * 我的理解就是好多东西都定义到父类(但是不做具体的实现 而是抽象或者实现类中简单实现) 子类中根
继承、super、this、抽象类 1.继承 类的继承是面向对象程序设计的一个重要特点,通过继承可以实现代的重用微维示的类称为父类或超类(superclas) .由继承得到的类称为子类或派生类。 1.1定义: 继承就是子类继承父类的属性和行为,使得子类的对象具有与父类相同的属性、相同的行为
多态 多态体现的格式: 父类类型变量名= new子类对象;变量名.方法名(); 父类类型: 指子类对象继承的父类类型,或者实现的父接口类型。代码如下: Fuf=newZi(); f .method(); 当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,执行的是子类重写后方
2.抽象类 2.1abstract使用格式 abstract class 类名字 { } 2.2抽象的使用 继承抽象类的子类必须重写父类所有的抽象方法。否则,该子类也必须声明为抽象类。最终,必须有子类实现该父类的抽象方法,否则,从最初的父类到最终的子类都不能创建对象,失去意义。 课堂实例 public class
多态 同一方法可以根据发送对象的不同而采用多种不同的行为方式。 一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(父类,有关系的类) 多态存在的条件 有继承关系 子类重写父类方法 父类引用指向子类对象 注意:多态是方法的多态,属性没有多态。
Java面向对象 面向过程&面向对象 面向过程 步骤清晰简单,第一步做什么,第二步做什么… 面向过程适合处理一些较为简单的问题 面向对象 物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考,最后,才对某个分类下的细节进行面向过程的思索
前言 继承的三个特点: 目录 多态 抽象类 1、多态 1.1、多态的概述 什么是多态: 同一个对象,在不同时刻表现出来的不同形态。 多态的前提: 要有继承或实现关系要有方法的重写要有父类引用指向子类对象。 1.2、多态中的成员方法的特点 成员访问特点 成员变量 编译看父类,运行看父
1、子类重写的方法的方法名和形参列表必须与父类被重写的方法相同。 2、子类重写的方法的权限修饰符不能小于父类被重写的方法,且子类不能对父类的private方法进行重写。 3、对于返回值类型,若父类被重写的方法是void,则子类重写的方法只能是void;若父类被重写的方法是其他类型,则
这个问题其实就是 在构造函数写其他构造函数的时候 只能写在代码块的第一行 不能写在第二行及其以后的行 (1):super()在第一行的原因就是: 子类有可能访问了父类对象, 比如在构造函数中使用父类对象的成员函数和变量,在成员初始化使用了父类, 在代码块中使用了父类等, 所以为
1.初识面向对象 面向过程和面向对象比较 面向过程的思想 步骤清晰简单,第一步做什么,第二部做什么,面向过程适合处理一些较为简单的问题 面向对象的思想 物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后才对某个分类下