关键词:
JAVA面向对象进阶
本章重点针对面向对象的三大特征:继承、封装、多态,进行详细的讲解。很多概念对于初学者来说,更多的是先进行语法性质的了解,不要期望,通过本章学习就“搞透面向对象”。本章只是面向对象的起点,后面所有的章节说白了都是面向对象这一章的应用。
老鸟建议 建议大家,学习本章,莫停留!学完以后,迅速开展后面的章节。可以说这么说,以后所有的编程都是“面向对象”的应用而已! |
继承(extend)
继承的实现
继承让我们更加容易实现类的扩展。 比如,我们定义了人类;再定义Boy类就只需要扩展人类即可。实现了代码的重用,让我们不再重新发明轮子(don’t reinvent wheels)。
从英文字面意思理解,extends的意思是“扩展”。子类是父类的扩展。现实世界中的继承无处不在。比如:
图1 现实世界中的继承
上图中,哺乳动物继承了动物。意味着,动物的特性,哺乳动物都有;在我们编程中,如果新定义一个Student类,发现已经有Person类包含了我们需要的属性和方法,那么Student类只需要继承Person类即可拥有Person类的属性和方法。
【示例1】使用extends实现继承
package com.bjsxt.gao;
public class Test{ public static void main(String[] args) { Student s = new Student("高淇",172,"java"); s.rest(); s.study(); } } class Person { String name; int height;
public void rest(){ System.out.println("休息一会!"); }
}
class Student extends Person { String major; //专业 public void study(){ System.out.println("在尚学堂,学习JAVA"); }
public Student(String name,int height,String major) { //天然拥有父类的属性 this.name = name; this.height = height; this.major = major; } } |
示例1 运行效果图
instanceof 运算符
instanceof是二元运算符,左边是对象,右边是类;当对象是右面类或子类所创建对象时,返回true;否则,false。比如:
public class Test{ public static void main(String[] args) { Student s = new Student("高淇",172,"java"); System.out.println(s instanceof Person); System.out.println(s instanceof Student); } } |
执行结果都是返回:true
继承使用要点
1.子类继承父类,可以得到父类的全部属性和方法(除了父类的构造方法),但不见得可以使用(比如,父类私有的属性和方法)。
2.Java中只有单继承,没有像C++那样的多继承。多继承会引起混乱,使得继承链过于复杂,系统难于维护。
3.Java中类没有多继承,接口有多继承。
4.如果定义一个类时,没有调用extends,则它的父类是:java.lang.Object
5.父类也称作超类、基类、派生类等。
方法的重写override
子类通过重写父类的方法,可以用自身的行为替换父类的行为。方法的重写是实现多态的必要条件。
方法的重写需要符合下面的三个要点:
1.“==”: 方法名、形参列表相同。
2.“≤≤”:返回值类型和异常类型,子类小于等于父类。
3.“≥”: 访问权限,子类大于等于父类
【示例2】方法重写
package com.bjsxt.javase;
public class TestOverride { public static void main(String[] args) { Vehicle v1 = new Vehicle(); Vehicle v2 = new Horse(); Vehicle v3 = new Plane();
v1.run(); v2.run(); v3.run();
v2.stop(); v3.stop();
} }
class Vehicle { //交通工具类 public void run(){ System.out.println("跑...."); }
public void stop(){ System.out.println("停止不动"); } }
class Horse extends Vehicle { //马也是交通工具
public void run() { //重写父类方法 System.out.println("四蹄翻飞,嘚嘚嘚..."); } }
class Plane extends Vehicle {
public void run() { //重写父类方法 System.out.println("天上飞!"); }
public void stop() { System.out.println("空中不能停,坠毁了!"); } }
|
示例2 运行效果图
本节我们先聊到这儿,下节我们继续聊……
「全栈Java笔记」是一部能帮大家从零到一成长为全栈Java工程师系列笔记。笔者江湖人称 Mr. G,10年Java研发经验,曾在神州数码、航天院某所研发中心从事软件设计及研发工作,从小白逐渐做到工程师、高级工程师、架构师。精通Java平台软件开发,精通JAVAEE,熟悉各种流行开发框架。
笔记包含从浅入深的六大部分:
A-Java入门阶段
B-数据库从入门到精通
C-手刃移动前端和Web前端
D-J2EE从了解到实战
E-Java高级框架精解
F-Linux和Hadoop
本文出自 “12931675” 博客,请务必保留此出处http://12941675.blog.51cto.com/12931675/1942393
5.3-全栈java笔记:面向对象特征封装多态
封装(encapsulation)封装的作用和含义我要看电视,只需要按一下开关和换台就可以了。有必要了解电视机内部的结构吗?有必要碰碰显像管吗?制造厂家为了方便我们使用电视,把复杂的内部细节全部封装起来,只给我们暴露简单... 查看详情
java学习笔记
面向对象最早70年代IBM的smalltalk面向过程:针对于某一个问题单独提出解决方案以及代码开发面向对象:以一种组件化的形式进行代码的设计。这样开发出来的代码最大的好处是可以复用(组件化的设计思想) 面向对象程序... 查看详情
java面向对象特征
面向对象特征面向对象三大特征:集成,封装,多态继承继承:-子类可以从父类继承属性和方法-对外公开某些属性和方法要点(eclipse中Ctrl+T查看继承结构)1.父类也称超类,基类,派生类2.Java中只有单继承,没有C++那种多继承3.接口有多继... 查看详情
java面向对象编程三大特征-多态
Java面向对象编程三大特征-多态本文关键字:Java、面向对象、三大特征、多态多态是面向对象编程的三大特征之一,是面向对象思想的终极体现之一。在理解多态之前需要先掌握继承、重写、父类引用指向子类对象的相关概念,... 查看详情
4.3-全栈java笔记:面向对象的内存分析
面向对象的内存分析为了让大家对于面向对象编程有更深入的了解,我们要对程序的执行过程中,内存到底发生了什么变化,进行剖析,让大家做到“心中有数”,通过更加形象的方式理解程序的执行方式。老鸟建议: ... 查看详情
java面向对象三大特征之继承和多态(代码片段)
...转型多态代码案例总结前言 上一篇博客我们介绍了Java面向对象思想以及三大特征之一的封装。本文将介绍面向对象三大特征的剩下两个特征——继承和多态,我个人认为继承和多态是三个特征中比较重要且理解起来稍有... 查看详情
java基础知识学习笔记
理解面向对象:Java纯粹的面向对象的程序设计语言,主要表现为Java完全支持面向对象的三个基本特征:继承、封装、多态。Java程序的最小单位是类,类代表客观世界中具有某种特征的一类事物,这些类可以生成系统中的多... 查看详情
java基础面向对象三个特征:继承
一、什么是继承?日常生活我们理解的继承:子女继承父母的财产;徒弟继承师父的功夫/衣钵等等;计算机中的继承: 1、子类继承父类的属性和行为;如,小猫、小狗都属于动物,具有高度相似的属性和行为(属性:名字... 查看详情
继承(面向对象特征之二)
好处:1:提高了代码的复用性。2:让类与类之间产生了关系,提供了另一个特征多态的前提。 父类的由来:其实是由多个类不断向上抽取共性内容而来的。java中对于继承,java只支持单继承。java虽然不直接支持多继承,但... 查看详情
java面向对象---继承
面向对象共有三个特征:封装,继承,多态。继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继... 查看详情
java中面向对象的三大特征是啥?
面向对象三大特性继承:一般类只能单继承,内部类实现多继承,接口可以多继承封装:访问权限控制public>protected>包>private内部类也是一种封装多态:编译时多态,体现在向上转型和向下转型,通过引用类型判断调用哪... 查看详情
4.1-全栈java笔记:对象的进化史
面向对象和面向过程的区别面向过程编程思想思考问题时,我们首先思考“怎么按步骤实现?”并将步骤对应成方法,一步一步,最终完成。 这个适合简单任务,不需要过多协作的情况下。比如,如何开车?我们很容易就列... 查看详情
python笔记——面向对象的细节(代码片段)
众所周知,面向对象的三大特征就是封装、继承和多态,这是面向对象的语言都具备的特征,只是不同语言在实现上会有所不同。那么python是怎么实现这三个特征的呢?咱这就来唠唠。封装封装是为了提高程序的... 查看详情
python笔记——面向对象的细节(代码片段)
众所周知,面向对象的三大特征就是封装、继承和多态,这是面向对象的语言都具备的特征,只是不同语言在实现上会有所不同。那么python是怎么实现这三个特征的呢?咱这就来唠唠。封装封装是为了提高程序的... 查看详情
java面向对象特征
(1).抽象:把需要用到的重要的东西抽出来,不重要的东西忽略掉。 (2).继承:子类继承父类的非私有成员,重用具有相同的属性,当父类方法满足不了时,重写父类不具有的特征属性,方法结构保持与父类一致。(既能重用... 查看详情
谈面向对象的三大特征
引:什么是面向对象? 面向对象,专注于由谁(哪个对象)来解决这个问题,而调用者无需关注对象实现的细节。 编程特点:出现了一个个的类,从类中拿到对象,通过对象直接解决问题。 应用:Java PHP c++ c#... 查看详情
java入门十八面向对象的三大特征之一-继承
继承是面向对象软件技术当中的一个概念,与多态、封装共为面向对象的三个基本特征。继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。继承 ... 查看详情
java面向对象的三大特征之继承
目录初识继承继承中的几个注意点铁汁们,好久不见😁。我们前面聊了聊Java中封装那点事,那么今天就让我们看看Java中的继承到底是个什么东东😉初识继承😎我们先不说是继承的概念是什么?那概念太... 查看详情