封装继承多态_继承重写重载
面向对象三大基本特征——封装、继承、多态
封装
首先封装的意思就是将客观事物封装成抽象的类,封装可以看做是一个保护屏障,将实现细节全都隐藏起来,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过严格的接口控制。他的优点在于1.良好的封装能够减少耦合。2.类的内部结构可以自有修改。3.可以对成员变量进行更精确的控制。4.隐藏信息,实现细节。
类和对象的区别
它们的关系是,对象是类的实例,类是对象的模板面向对象的四要素:
封装(wrap)、继承(inheritance)、重载(override)还是多态(polymorphism),亦或是其他? 封装是优点,继承是基础,重载是特点,而多态则是特征。
重载,继承,重写和多态,泛型的区别:
(1)重载是在一个类里一系列参数不同名字相同的方法。
(2)继承是子类获得父类的成员,使用父类的方法。
(3)重写是继承后重新实现父类的方法。
(4)多态是具有表现多种形态的能力的特征,是为了避免在父类里大量重载引起代码臃肿且难于维护。继承是子类使用父类的方法,而多态则是父类使用子类的方法
(5) 泛型就是指我们不为特定的类型进行专门编码,而采用对不同类型进行通用编码的方式,无论是数据结果还是算法,多态实际上就是泛型。
下面的例子包含了这四种实现:class Triangle extends Shape {public int getSides() { //重写return 3;} }class Rectangle extends Shape {public int getSides(int i) { //重载return i;} }public class Shape {public boolean isSharp(){return true;} public int getSides(){return 0 ;} public int getSides(Triangle tri){return 3 ;} public int getSides(Rectangle rec){return 4 ;} } public static void main(String[] args) { Triangle tri = new Triangle(); //继承 System.out.println("Triangle is a type of sharp? " + tri.isSharp()); Shape shape = new Triangle(); //多态 System.out.println("My shape has " + shape.getSides() + " sides."); } }注意Triangle类的方法是重写,而Rectangle类的方法是重载。 比较就可以发现多态对重载的优点:如果用重载,则在父类里要对应每一个子类都重载一个取得边数的方法;如果用多态,则父类只提供取得边数的接口,至于取得哪个形状的边数,怎样取得,在子类里各自实现(重写)。
多态的体现就是父类引用指向子类对象。
List<String,Object>() list = new ArrayList<String,Object>();
Map<String,Object>() map = new HashMap<String, Object>();
关于面向对象编程的最终核心就是ocp开放关闭原则,只有遵循ocp原则(对于扩展是开放的,对于更改是封闭的)才可续论可维护,可扩展,可服用,灵活性好。、
另一个参考资料
http://www.cnblogs.com/liaoliao/p/5009117.html
封装继承多态_继承重写重载相关推荐
- python封装继承多态_浅谈JavaScript的面向对象和它的封装、继承、多态
写在前面 既然是浅谈,就不会从原理上深度分析,只是帮助我们更好地理解... 面向对象与面向过程 面向对象和面向过程是两种不同的编程思想,刚开始接触编程的时候,我们大都是从面向过程起步的,毕竟像我一样, ...
- python之类的封装、多态、继承
类方法包括:实例方法.静态方法.类方法 变量包括:类变量和实例变量 子类可以继承多个父类 #-*- coding:utf-8 -*-class User:#类变量city="shanxi&q ...
- 多测师拱墅校区肖sir_高级金牌讲师_python之封装,多态,继承
一.封装名可名 (1)定义:封装就是指隐藏对象中一些不希望外部所访问的属性和方法,即为保证安全 (2)概念:指的是在设计类时,不对外提供,隐藏起来,提供公共方法以外的方法(就是把属性和方法封装到一个抽 ...
- Java简单类与对象,封装,多态,继承,接口,设计模式,某游戏系统的需求如下,请按照面向对象思想进行设计并实现。
代码需求 java实现 (1)有很多的武器,包括弓箭(BowAndArrow).魔杖(Wand)和剑(Sward),每种武器都具备攻击和防守两个行为.在每种行为实现中,打印相应的提示信息即可,例如&q ...
- java教师和学生类的继承代码_继承学生类java
计算机科学与技术专业课程 课程简介 1.数字逻辑电路: "数字逻辑"是计算机专业本科生的一门主要课程,具有自身的理论体系和很强的实践性.它是计算机组成原理的主要先导课程之一,是计算 ...
- C++之菱形继承与虚继承(含虚函数)
面向对象的三大特征:封装,多态,继承 前面我们已经讲了继承的一些知识点,在这基础上,我们讲的时候再涉猎一些多态的只是. 下面我们先接着上次讲有虚函数的菱形虚继承 首先什么是虚函数.? 虚函数:在类里面 ...
- Java 面向对象编程(三)——多态,方法重写,向上转型,向下转型
所谓多态,就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪 ...
- java面向对象编程_包_继承_多态_重载和重写_抽象类_接口_this和super
目录点击跳转 包 包的命名方法 导入包中的类 系统包的介绍 **注意事项** 继承 基础知识 构造方法 **基础语法** `protected`修饰符 组合 `this`和`super`关键字 `th ...
- Java基础【之】面向对象编程(封装、继承(extends、方法重写、super)、多态(动态绑定、重载/重写)、代码实现)
Java基础[之]面向对象编程(封装.继承.多态.代码实现) 1.封装 2.继承 2.1.extends 2.2.方法重写 2.3.super 3.多态 3.1.对象的多态.方法的多态 3.2.动态绑 ...
- Eclipse,静态,继承,封装,this,super,重写,重载,多态,final,冒泡排序,选择排序,抽象类,接口,内部类
文章目录 Eclipse工具中java项目的工程结构 静态代码块的书写格式 静态代码块,构造代码块,构造方法的优先级 static关键字的特点 封装的概念 private关键字的特点 面向对象思想特点 ...
最新文章
- 那些年我们排过的序之希尔排序
- 组策略 从入门到精通 (一) 组策略的还原与备份和汇入
- 101.编译是如何把一个机器的语言拿到另一台机器语言机器上执行的?
- JAVA SPI机制及SPI机制在Tomcat中的应用
- Ubuntu 12.04 LTS安装VMware Tools:无法找到kernel header path的问题
- Windows上同时运行两个Tomcat
- 女神!浙大教授荣获世界杰出女科学家奖!
- 1.1.2获取和控制线程状态(Getting and Seeting Thread State)
- windows远程连接linux系统(图文)
- python Socket 客户端
- 如何获取和发现用户需求
- discuz_result
- qt.network.monitor: Could not get the INetworkConnection instance for the adapter GUID.QT关闭时程序异常结束
- sed编辑器之删除行
- 一文看懂语音技术商业化逻辑:对品牌意味着什么 | 综述
- IT男需要学习文哲史
- 浙江中医药OJ暑期训练五题解
- 3904三极管是什么功能_电视机维修|为什么电视放着放着就黑屏了
- 15年前,一则公路旁的Google的招聘广告
- 医学图像处理开源软件