多态性

Java--面向对象四(封装、继承、多态)

假如想象 提交于 2019-11-27 23:55:42
文章目录 5、面向对象的三大特性  5.1 封装性  5.1.1 封装的基本思想 5.1.2 引入封装性的原因  5.1.3 封装性的代码体现  5.2 继承性  5.2.1 继承的基本思想  5.2.2 继承的格式  5.2.3 继承的目的  5.2.4 Java中继承性的说明  5.3 多态性  5.3.1 多态性的概念  5.3.2 多态性的使用  5.3.3 转型 5、面向对象的三大特性  5.1 封装性  5.1.1 封装的基本思想   将对象的属性和行为封装起来,而将对象的属性和行为封装起来的载体是类,类通常对用户隐藏其实现的细节。 5.1.2 引入封装性的原因 ​  (1)追求“高内聚,低耦合” ​   高内聚 :类的内部数据操作细节自己完成,不允许外部干涉; ​   低耦合 :仅对外暴露少量的方法用于使用。 ​  (2)隐藏对象内部的复杂性,只对外公开简单的接口。  5.1.3 封装性的代码体现 将类的属性xxx私化(private),同时,提供公共的(public)方法来获取(getXxx)和设置(setXxx)此属性的值 不对外暴露的私有的方法 单例模式(将构造器私有化) 如果不希望类在包外被调用,可以将类设置为缺省的。  5.2 继承性  5.2.1 继承的基本思想 ​ 使子类的对象拥有父类的全部属性和行为,同时可以增添自己的所特有的属性和行为

继承性,多态性,静态方法与变量的测试

可紊 提交于 2019-11-27 19:27:42
之前,关于多态这一块一直感觉很模糊,今天有空,自己专门测试了一下。 要操作的Bean类 //非静态变量 class A{ int a = 1; } class B extends A{ int a = 3; int b = 2; } //静态变量 class AA{ static int a = 1; } class BB extends AA{ static int a = 2; } class CC extends AA{ static int a = 3; } class M1{ static void show(){ System.out.println("M1.show()"); } } class M2 extends M1{ static void show(){ System.out.println("M2.show()"); } } public class Bean { } *********************************************************************************************************************************************** 测试类 import org.junit.Test; public class Test1 { /

面试题整理

风流意气都作罢 提交于 2019-11-27 16:07:09
&和&&的区别 &运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是true。&&之所以称为短路运算是因为,如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算。很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是null而且不是空字符串,应当写为:username != null &&!username.equals(""),二者的顺序不能交换,更不能用&运算符,因为第一个条件如果不成立,根本不能进行字符串的equals比较,否则会产生NullPointerException异常。 int和Integer有什么区别? int的包装类就是Integer,从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换。 Java 为每个原始类型提供了包装类型: 原始类型: boolean,char,byte,short,int,long,float,double 包装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double String 和StringBuffer的区别 JAVA 平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串

java

蓝咒 提交于 2019-11-27 07:23:20
基础知识整理: 1、面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: 1)抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。 2)继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段(如果不能理解请阅读阎宏博士的《Java与模式》或《设计模式精解》中关于桥梁模式的部分)。 3)封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口(可以想想普通洗衣机和全自动洗衣机的差别,明显全自动洗衣机封装更好因此操作起来更简单;我们现在使用的智能手机也是封装得足够好的,因为几个按键就搞定了所有的事情)。 4)多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。多态性分为编译时的多态性和运行时的多态性

【九】类——1

喜你入骨 提交于 2019-11-26 19:11:59
前面介绍了Python主要的内建对象类型(数字、字符串、列表、元组和字典),以及内建函数和标准库的用法,还有定义函数的方法。现在开始学习如何创建自己的对象。 一.对象 【百度百科】中的定义: 广义:在内存上一段有意义的区域,称作为一个对象。 在C中,具有特定长度的类型,可以称作为对象类型,函数不具有特定长度,所以不是对象类型。 在显式支持面向对象的语言中,“对象”一般是指类在内存中装载的实例,具有相关的成员变量和成员函数(也称为:方法)。 教材上的定义: 对象(object)基本上可以看做数据(特性)以及由一系列可以存取、操作这些数据的方法所组成的集合。 二.对象的特征 1.多态性 “多态性”一词最早用于生物学,指同一种族的生物体具有不同的特性。 在面向对象的程序设计理论中,多态性的定义是:同一操作作用于不同的类的实例,将产生不同的执行结果,即不同的类的对象收到相同的消息时,得到不同的结果。多态是面向对象的程序设计的重要特征之一,是扩展性在“继承”之后的又一重大表现 。对象根据所接受的消息而做出动作,同样的消息被不同的对象接受时可能导致完全不同的行为,这种现象称为多态性。 多态性包含编译时的多态性、运行时的多态性两大类。 即:多态性也分静态多态性和动态多态性两种。 静态多态性: 是指定义在一个类或一个函数中的同名函数,它们根据参数表(类型以及个数)区别语义,并通过静态联编实现,例如

Java学习笔记(1)--- 简介

萝らか妹 提交于 2019-11-26 09:37:13
简介: 注:和之前的C不一样,本人没有学过java,所以内容上可能会相对详细一些。 主要特性: 1.这跟c++一样是面对对象语言: Java语言提供类、接口和继承等面向对象的特性,为了简单起见,只支持类之间的 单继承 ,但支持 接口之间的多继承 ,并支持类与接口之间的实现机制(关键字为implements)。Java语言 全面支持动态绑定 ,而C++语言只对虚函数使用动态绑定。总之,Java语言是一个 纯的面向对象 程序设计语言。 2.分布式的语言: Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 3.是一门高级语言,简单易懂: Java的 强类型机制、异常处理、垃圾的自动收集 等是Java程序健壮性的重要保证。对 指针的丢弃 是Java的明智选择。Java的安全检查机制使得Java更具健壮性。C会对系统底层进行操作所以写法很严谨繁琐。 4.相对安全的语言(因为多被用于网络环境): Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外