美文网首页
JAVA之面向对象二

JAVA之面向对象二

作者: 续笙 | 来源:发表于2018-02-10 13:27 被阅读0次

1.继承    在Java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类所有可继承的属性和方法。

继承的格式&使用: 在程序中,如果想声明一个类继承另一个类,需要使用extends关键字。

格式:    class 子类 extends 父类 {}

子类在继承父类的时候,会自动拥有父类的成员。

继承的好处:

1、继承的出现提高了代码的复用性,提高软件开发效率。

2、继承的出现让类与类之间产生了关系,提供了多态的前提。

在类的继承中,需要注意一些问题,具体如下:

1、在Java中,类只支持单继承,不允许多继承,也就是说一个类只能有一个直接父类2、多个类可以继承一个父类                      3、在Java中,多层继承是可以的,即一个类的父类可以再去继承另外的父类,例如C类继承自B类,而B类又可以去继承A类,这时,C类也可称作A类的子类                        ​ 4、在Java中,子类和父类是一种相对概念,也就是说一个类是某个类父类的同时,也可以是另一个类的子类。例如上面的这种情况中,B类是A类的子类,同时又是C类的父类。

继承-子父类中成员变量的特点

成员变量:如果子类父类中出现不同名的成员变量,这时的访问是没有任何问题。当子父类中出现了同名成员变量时,在子类中若要访问父类中的成员变量,必须使用关键字super来完成。super用来表示当前对象中包含的父类对象空间的引用。

在子类中,访问父类中的成员变量格式:

        super.父类中的成员变量

1.子父类中成员方法的特点

当在程序中通过对象调用方法时,会先在子类中查找有没有对应的方法,若子类中存在就会执行子类中的方法,若子类中不存在就会执行父类中相应的方法。

成员方法特殊情况——覆盖

子类中出现与父类一模一样的方法时,会出现覆盖操作,也称为override重写、复写或者覆盖。

2.方法重写(覆盖)的应用:

当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容。

在子类中,访问父类中的成员方法格式:

        super.父类中的成员方法();

方法重写的注意事项

​ 子类方法覆盖父类方法,必须要保证权限大于等于父类权限。

总结:当一个类是另一个类中的一种时,可以通过继承,来继承属性与功能。如果父类具备的功能内容需要子类特殊定义时,进行方法重写。

二.抽象类    分析事物时,发现了共性内容,就出现向上抽取。会有这样一种特殊情况,就是方法功能声明相同,但方法功能主体不同。那么这时也可以抽取,但只抽取方法声明,不抽取方法主体。那么此方法就是一个抽象方法。

抽象方法定义的格式:                                public abstract 返回值类型 方法名(参数);

抽象类定义的格式: abstract class 类名 {  }

抽象类的特点:

1、抽象类和抽象方法都需要被abstract修饰。抽象方法一定要定义在抽象类中。    2、抽象类不可以直接创建对象,原因:调用抽象方法没有意义。                                3、只有覆盖了抽象类中所有的抽象方法后,其子类才可以创建对象。否则该子类还是一个抽象类。

之所以继承抽象类,更多的是在思想,是面对共性类型操作会更简单。

3.接口:理解为是一个特殊的抽象类,但它不是类,是一个接口

接口的特点:

1,定义一个接口用interface关键字 interface Inter{}

2,一个类实现一个接口,实现implements关键字    class Demo implements Inter{}

3, 接口不能直接创建对象

通过多态的方式,由子类来创建对象,接口多态

接口中的成员特点:

成员变量:只能是final 修饰的常量

默认修饰符: public static final

成员方法:只能是抽象方法

默认修饰符: public abstract

类与类,类与接口,接口与接口之间的关系

类与类之间:继承关系,单继承,可以是多层继承

类与接口之间: 实现关系,单实现,也可以多实现

接口与接口之间:继承关系,单继承,也可以是多继承

Java中的类可以继承一个父类的同时,实现多个接口

4.多态:理解为同一种物质的多种形态

多态使用的前提:

1,有继承或者实现关系

2,要方法重写

3,父类引用指向子类对象

多态的成员访问特点:方法的运行看右边,其他都看左边

多态的好处:提高了程序的扩展性

多态的弊端:不能访问子类的特有功能

多态的分类

  类的多态

abstract class Fu { 

public abstract void method();

}

class Zi extends Fu {

public void method(){

System.out.println(“

}

}

//类的多态使用

Fu fu= new Zi();

接口的多态

interface Fu {

public abstract void method();

}

class Zi implements Fu {

public void method(){

System.out.println(“重写接口抽象方法”

}

}

//接口的多态使用

Fu fu = new Zi();

instanceof 关键字

格式: 对象名 instanceof 类名                    返回值: true, false                                        作用: 判断指定的对象 是否为 给定类创建的对象

相关文章

  • java SE目录

    java SE目录 java基础(一)java基础(二)关键字面向对象(一)面向对象(二)面向对象(三)集合(一)...

  • 那些年出现的作业

    Java面向对象之类的练习之模拟计算器 demo Java面向对象之类的练习之ArrayBox封装 demo

  • kot

    #Kotlin之班门弄斧 ##面向对象 ##java和kotlin的交互 ##协程及协程框架 ## 面向对象 ...

  • 【自学Java】语言入门(二)幼儿班 面向对象

    第二章 面向对象 2.1 基础概念 2.1.1 面向对象 面向对象:考虑我该找“谁”(对象)去做 ,例 java...

  • 阶段 1:Java语言基础

    一. Java 编程入门 二. Java面向对象编程 三. Java语言高级特性

  • Java面向对象编程

    Java面向对象 初识面向对象 面向过程 & 面向对象 面向过程思想 步骤清晰简单,第一步做什么,第二部做什么.....

  • java基础-day10-面向对象4.0

    面向对象4.0 1. 面向对象之继承 1.1 生活中的继承 1.2 Java中的继承 1.3 子类对象创建,会调...

  • 面试题汇总

    1.Java基础面试问题 Java基础之基础问题 Java基础之面向对象 Java基础之数据结构 Java基础之I...

  • 3. Java面向对象编程

    类与对象[1] Java是面向对象的汇编语言(面向机器)—— c语言(面向过程)—— java语言(面向对象) 类...

  • 深入理解JavaScript的面向对象机制和原型链

    〇、前言 一、JavaScript和Java在面向对象机制上的区别1、面向对象编程的特征2、机制差异简述 二、面向...

网友评论

      本文标题:JAVA之面向对象二

      本文链接:https://www.haomeiwen.com/subject/ccictftx.html