面向对象的三大特征

作者: 飞天_shine | 来源:发表于2017-10-22 22:25 被阅读0次

封装、继承、多态

一、封装

       简单的说,属性能够描述事物的特征,方法能够描述事物的动作。封装就是把同一类事物的共性(包括属性和方法)归到同一类中,方便使用。

       封装是指利用抽象数据类型把数据和基于数据的操作封装起来,使其成为一个不可分割的整体,数据隐藏在抽象数据内部,尽可能的隐藏数据细节,只保留一些接口使其与外界发生联系。也就是说用户无需知道内部的数据和方法的具体实现细节,只需根据留在外部的接口进行操作就行。

如下:

public class Person{

/*

*对属性的封装一个人的姓名、性别、年龄都是这个人的私有属性

*/

private String name;

private String sex;

private int age;

private Wife wife;

/*

* setter()、getter()是该对象对外开发的接口

*/

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

二、      继承

       简单来说继承就是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。

      继承关系是传递的。若类C继承类B,类B继承类A(多继承),那么C同时继承下来A和B的属性和方法

class Person{

public String name = "小明";

public int age = 20;

}

class Teacher extends Person {

void study() {

System.out.println("教书");

}

}

public class Show {

public static void main(String args[]) {

Teacher t= new Teacher();

t.name = "小红";

// t.age = 20;

System.out.println("name=" + t.name + "+++++++" + "age=" + t.age);

}

}

三、      多态

    必要条件:方法的重写、重载与动态连接构成多态性;

    向上转型

 我定义了一个子类Cat,它继承了Animal类,那么后者就是前者的父类。我可以通过

Cat c = new Cat();       例化一个Cat的对象,这个不难理解。

但当我这样定义时: Animal a = new Cat();

       它表示我定义了一个Animal类型的引用,指向新建的Cat类型的对象。由于Cat是继承自它的父类Animal,所以Animal类型的引用是可以指向Cat类型的对象的。那么这样做有什么意义呢?因为子类是对父类的一个改进和扩充,所以一般子类在功能上较父类更强大,属性较父类更独特,定义一个父类类型的引用指向一个子类的对象既可以使用子类强大的功能,又可以抽取父类的共性。所以,父类引用只能调用父类中存在的方法和属性,不能调用子类的扩展部分;因为父类引用指向的是堆中子类对象继承的父类;同时,父类中的一个方法只有在父类中定义而在子类中没有重写的情况下,才可以被父类类型的引用调用;对于父类中定义的方法,如果子类中重写了该方法,那么父类类型的引用将会调用子类中的这个方法,这就是动态连接。

     指向子类的父类引用由于向上转型了,它只能访问父类中拥有的方法和属性,而对于子类中存在而父类中不存在的方法,该引用是不能使用的,尽管是重载该方法。若子类重写了父类中的某些方法,在调用该些方法的时候,必定是使用子类中定义的这些方法(动态连接、动态调用)。

相关文章

  • 面向对象

    面向对象方法概论 对象、结构 概念呢 特征 1.1 什么是面向对象 面向对象方法的基本思想 对象 属性-静态特征 ...

  • Java基础(二)

    面向对象特征;重载和重写;静态绑定和动态绑定;抽象类和接口;包。 面向对象的特征 面向对象的三个基本特征是:封装、...

  • iOS概念知识

    面向对象的三大特征,并作简单的介绍。 面向对象的三个基本特征是:封装、继承、多态。 1.封装是面向对象的特征之一,...

  • 面试 | java基础

    面向对象 1、面向对象特征? 封装封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成...

  • Java学习day-07:面向对象

    一、面向过程和面向对象 1.面向对象与面向过程的区别: 面向对象具有三大特征;封装,继承,多态;面向对象与面向过程...

  • java 学习第四天

    面向对象的特征二:继承 关键字super this和super的区别 面向对象特征三: 多态 instanceof...

  • Java 工程师成神之路 | 2019正式版

    摘要:什么是面向对象 基础篇 01面向对象 → 什么是面向对象 面向对象、面向过程 面向对象的三大基本特征和五大基...

  • 面向对象特征

    ⾯向对象的三⼤特征 封装 , 继承 ,多态 什么是封装 封装隐藏了内部实现细节,只暴露出接⼝ 电灯对象你只...

  • 面向对象特征

    面向对象编程有4个基本特征: 抽象: 抽象就是将一些事物的共性和相似点抽离出来,并将这些属性归为一个类,这个类只考...

  • Java的封装、继承、多态 包

    目录: 面向对象的三大特征:封装、继承、多态包方法重写superinstanceof 面向对象的三大特征:封装、继...

网友评论

    本文标题:面向对象的三大特征

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