教你如何正确了解java三大特性!!!!

目录
  • 继承与多态
  • 一.包
  • 二.继承
  • 三:重载和重写
    • 3.1重载(Overload)
    • 3.2 重写
  • 四:多态
    • 4.1 多态的转型
    • 4.2 instanceof
  • 总结

继承与多态

本章讲解面向对象的三大特性:封装,继承,多态。

一.包

Java定义了一种名字空间,称之为包:package。一个类总是属于某个包,类名(比如Person)只是一个简写,真正的完整类名是 包名.类名。例如:apple 类放在包 banana 里面 完整类名是:banana.apple。

自定义包的语法:

package<   包名   >

注意:声明一个包必须写在类的第一行。

1.2 包的导入

如果要使用java中存在的包,可以在程序中使用import语句导入包。

格式如下:(注意中间有一个小点)

import<  包名  >.<  类名  >

如果要导入一个包中的多个类,可以使用"*"表示包中所有的类。如上个例子完整代码为:import banana.*。

二.继承

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

继承的作用:通过继承可以快速创建新的类,实现代码的重用,提高程序的可维护性,节省大量创建新类的时间,提高开发效率和开发质量。

java的继承语法格式如下:

[修饰符]  class 子类名 [extends 父类名]{
        //类定义部分
}

例如:banana是一个类,apple是一个类,将banana设为apple的父类

public class apple extends banana{
        //内容
}

注意!1.java中的继承为单继承,即一个子类只能有一个直接的父类。

           2.子类不能选择性继承父类;

           3.Java不支持多重继承,但一个类可以实现多个接口,从而克服单继承的缺点;

           4.构造方法不会被子类继承,但可以从子类中调用父类的构造方法。

三:重载和重写

3.1重载(Overload)

同一个类中,同名的方法有不同的参数列表(参数类型不同,参数个数不同,甚至是参数顺序不同)即为重载,重载对返回类型无要求,可以相同,也可以不同,但不能通过返回类型是否相同来判断重载.

注意以下几点:

(1)同一类中方法名相同,参数列表不同。

(2)返回值类型不能用于区分方法的重载。

提醒:构造方法也可以实现方法的重载

3.2 重写

重写,即重新写一遍。即在子类中把父类本身具有的方法重新写一次。子类扩展了父类,子类是一个特殊的父类。子类以父类为基础,额外增加新的属性和方法。

重写的规则:

1.发生在之类与父类之间

2.父类中的私有方法不能被重写

3.重写父类方法时,访问权限不能比父类低,抛出异常不能比父类的异常范围广或抛出新的异常

4.父类有静态方法时,子类必须通过静态方法进行重写

重载与重写的区别:

1.重载发生在一个类里面

2.重写发生在父类与子类之间。

四:多态

多态指同一操作作用于不同对象,可以有不同的解释,以致产生不同的执行结果。

多态体现为父类引用变量可以指向子类对象

前提条件:必须要有子父类关系。

注意:在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法。

4.1 多态的转型

多态的转型分为向上转型向下转型两种:

向上转型:多态本身就是向上转型过的过程

使用格式:

父类类型 变量名=new 子类类型();

适用场景:当不需要面对子类类型时,通过提高扩展性,或者使用父类的功能就能完成相应的操作。

向下转型:一个已经向上转型的子类对象可以使用强制类型转换的格式,将父类引用类型转为子类引用各类型

4.2 instanceof

instanceof运算符的前一个操作数通常是一个引用类型变量,后一个操作数通常是一个类,它用于判断运算符前面的引用变量是否是运算符后面的类型或其子类型的实例。

注意!使用instanceof运算符时,需要注意instancecof运算符前面操作数的编译时,类型要么与后面的类相同,要么与后面的类具有父子继承关系,否则会引起编译失误。

总结

本篇文章就到这里了,希望可以给你带来一些帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • java面向对象的三大特性之一继承用法实例分析

    本文实例讲述了java面向对象的三大特性之一继承用法.分享给大家供大家参考,具体如下: Java用extends关键字表示这种继承关系. Java的继承只允许单继承,即一个类只能有一个父类. 代码: 工程师类: package com.jredu.oopch02; /** * 工程师类 * @author Administrator * */ public class Engineer { //共有的属性和方法 //子类可以继承 protected int id; protected Strin

  • 深入理解Java三大特性中的多态

    Java三大特性 面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承是为了重用父类代码.两个类若存在IS-A的关系就可以使用继承.,同时继承也为实现多态做了铺垫.那么什么是多态呢?多态的实现机制又是什么?请看我一一为你揭开: 所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,

  • Java三大特性-封装知识小结

    最近有个朋友说想要说最近在学java,他对面向对象的编程语言的时候还是有些不明白,为了帮他能更快地"转型",我就写了这篇文章.因为从上层建筑层面而言.所有的面向对象编程语言的思路都是差不多的,而这三大特性,则是思路中的支柱点,接下来我就重点讲解了一下java三大特性. 面向对象的编程语言,拥有三大特性,分别是:"封装","继承","多态". 封装 在面向对象编程中,封装封装(encapsulation)从字面上来理解就是包装的

  • Java面向对象三大特性及多态解析

    大家好,本文将会给大家带来Java多态. 以上就是本次学习的6大任务.我们依次来看. 1 Object类 Object类是所有Java类的根基类. 如果在类的声明中未使用extends关键字指明其基类,则默认基类为Object类. class Person{ } 等价于 class Person extends Object{ } 1.对象的实例化过程 实例化一个类是从最顶级的超类开始实例化的, 是一层一层的包裹结构. "先父类后子类,先静态后成员". ⑴toString方法 toSt

  • 关于Java三大特性之多态的总结

    面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. 1.定义: 多态:指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而采用多种不同的行为方式.(发送消息就是函数调用) 2.实现多态的技术称为:动态绑定(dynamicbinding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法. 3.作用:消除类型之间的耦合关系. 4.现实中,关于多态的例子不胜枚举.比方说按下F1

  • 教你如何正确了解java三大特性!!!!

    目录 继承与多态 一.包 二.继承 三:重载和重写 3.1重载(Overload) 3.2 重写 四:多态 4.1 多态的转型 4.2 instanceof 总结 继承与多态 本章讲解面向对象的三大特性:封装,继承,多态. 一.包 Java定义了一种名字空间,称之为包:package.一个类总是属于某个包,类名(比如Person)只是一个简写,真正的完整类名是 包名.类名.例如:apple 类放在包 banana 里面 完整类名是:banana.apple. 自定义包的语法: package<

  • Java三大特性之继承详解

    目录 概述 由来 定义 好处 继承的格式 继承后的特点—成员变量 成员变量不重名 成员变量重名 继承后的特点—成员方法 成员方法不重名 成员方法重名—重写(Override) 重写的应用 注意事项 继承后的特点—构造方法 概述 由来 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那一个类即可.如图所示: 其中,多个类可以称为子类,单独那一个类称为父类.超类(superclass)或者基类. 继承描述的是事物之间的所属关系,这种关系是: i

  • Java三大特性之封装详解

    目录 封装概述 概述 原则 封装的步骤 封装的操作—private关键字 private的含义 private的使用格式 封装优化1—this关键字 this的含义 this使用格式 封装优化2—构造方法 构造方法的定义格式 注意事项 标准代码—JavaBean 封装概述 概述 面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改. 封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问.要访问该类的数据,必须通过指定的方式.适当的封装可

  • Java基础之教你如何正确运用依赖注入

    一.C++的诟病 C++最遭人诟病的地方就是定义一个类需要写两个文件,一个.h文件和一个.cpp文件.例如定义一个CMainFrame类,mainframe.h内容如下: class CMainFrame : public CFrameWndEx { protected: CMainFrame(); public: virtual ~CMainFrame(); }; mainframe.cpp内容如下: CMainFrame::CMainFrame() { } CMainFrame::~CMai

  • Java轻松掌握面向对象的三大特性封装与继承和多态

    目录 1.封装 1.介绍 2.封装的理解和好处 3.封装的实现步骤 2.继承 1.介绍 2.继承的基本语法 3.继承的使用细节 3.super关键字 1.基本介绍 2.基本语法 3.细节与好处 4.super与this的比较 4.方法重写 1.基本介绍 2.注意事项与使用细节 3.重载与重写的比较 3.多态 1.基本介绍 2.具体体现 1.方法的多态 2.对象的多态(重点) 3.多态注意事项和细节讨论 1.多态的前提 2.属性 3.instance of 4.多态的向上转型 5.多态的向下转型

  • 教你正确的Java扩展方法示例详解

    目录 引言 支持扩展方法的语言 C# Visual Basic Kotlin 主角登场 Lombok @ExtensionMethod Manifold 总结 引言 扩展方法能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型.扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用.对于用 C# 和 Visual Basic 编写的客户端代码,调用扩展方法与调用在类型中实际定义的方法没有明显的差异. 支持扩展方法的语言 其实比较多的编程语言都支持了

随机推荐