面向对象的三大特性

原创 2016年05月20日 12:26:43

首先,面向对象有两个重要的概念一定要理解:类和对象。对象指具体的人或物,比如一辆公交车就是一个对象。而对相同或相似的对象的集合就是类,比如车就是一个类,它包含公交车,小汽车等有共同特征的对象。
面向对象的三大特征分别是封装,继承,多态。
封装:将对象的状态信息即类的属性和类中的某个方法设置为private私有的,这样就允许只能该类访问,而其他的类不能直接访问到这个属性和方法,必须通过相应的get和set方法访问。
例如:有一个银行卡,它的属性卡号和余额不能被别人知道,这就要求把它设置为私有的。

public class Account {

    private String cardNo;
    private double balance;
    public String getCardNo() {
        return cardNo;
    }
    public void setCardNo(String cardNo) {
        this.cardNo = cardNo;
    }
    public double getBalance() {
        return balance;
    }
    public void setBalance(double balance) {
        this.balance = balance;
    }

}

继承:使用已存在的类的定义作为基础建立新类,其中已存在的类为父类,新类为子类,它们必须满足is a 的关系。比如Animal类和Cat类,cat is a animal.
通过继承,父类的代码就克隆到了子类中,这样就提高了代码的重复利用。在子类中还可以实现对父类方法的重写。要注意的是,子类重写的返回值类型必须是父类返回值类型的子类。代码实现:
Animal类

public class Animal {
    public void sleep(){
        System.out.println("----8 hours");
    }

}

Cat类

public class Cat extends Animal{
}

创建一个Cat对象,可以调用Animal中的sleep()方法。

public class Test {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Cat cat = new Cat();
        cat.sleep();
    }
}

在Cat类中可以重写sleep方法

public class Cat extends Animal{
    @Override
    public void sleep() {
        // TODO Auto-generated method stub
        System.out.println("--------10 hours-----");
    }
}

注意:父类中的私有属性子类也不能直接访问。

多态

实现多态需要具备的前提:
1 两个类之间有继承关系
2 子类重写了父类中的某个方法
3 父类的引用指向子类的对象

例如:Animal a=new Cat();
此时,a这个对象能访问到哪种方法由Animal决定,而具体怎么做由Cat决定。

public class Test {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Animal a = new Cat();
        a.sleep();
    }
}

输出的结果为
这里写图片描述

面向对象的三大特征

1. 封装 封装是把描述一类事物的成员变量(属性)和方法(功能)放在一起的过程。 (1)在封装的过程中需要设定类变量(群体变量),使用static。 static修饰的变量叫静态成员变量...
  • qq_28017393
  • qq_28017393
  • 2016年11月28日 14:15
  • 71

大数据导论(一) 6V

大数据有几个特性,最著名的是数据量(volume),速度(velocity),多样性(variety)。除此以外,还有就是准确性(veracity),连通性(valence), 和价值(value) ...
  • u013007900
  • u013007900
  • 2017年01月31日 20:54
  • 1385

volatile的特性

当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个监视器锁对这些单个读/写操作做了同步...
  • yangjianhui123
  • yangjianhui123
  • 2016年02月21日 10:44
  • 372

利用指针把三个数从大到小输出(容易出现的问题)

下面的第一个程序是正确的做法 第二个是错误的做法#define _CRT_SECURE_NO_WARNINGS 1 #include void swap(int *p1, int *p2); in...
  • Wan_shibugong
  • Wan_shibugong
  • 2017年12月11日 23:14
  • 126

大数据三个特点的理解

写这篇文章始于对维克托前辈《大数据时代》的理解与思考,
  • littlejixing
  • littlejixing
  • 2014年07月20日 11:34
  • 5077

java的11个特性

java特性、简单性、可移植性、源代码可移植性、cpu可移植性、操作系统可移植性、面向对象、抽象、封装、继承、多态、解释型、网络技能、高性能、健壮性、多线程、安全性、动态性、体系结构中立...
  • baidu_32932571
  • baidu_32932571
  • 2016年06月03日 17:10
  • 379

多线程编程中三个特性

原子性,可见性,有序性简述
  • xiong_hui_hui
  • xiong_hui_hui
  • 2016年04月25日 12:27
  • 2320

上海宝山锦隆考试基地科目三笔记

锦隆训练场科目三笔记 概述: 年前八月份报名学车,锦隆训练场-凌峰驾校-黄教练; 科目二,2016-11-3,一次性考过,100分; 科目三,2017-04-28,一次性考过,90分; 有需要...
  • lisheng19870305
  • lisheng19870305
  • 2017年04月28日 11:43
  • 3242

C++面相对象三大特性

封装 【封装复杂,对外留出简单接口】 封装是在设计类的一个基本原理,是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与对数据进行的操作进行有机的结合,形成“类”,其中数据和函...
  • yixiantian7
  • yixiantian7
  • 2014年03月30日 18:44
  • 2139

一场巡展搞这么大动静 新华三客户业务发展可见一斑

11月14日,深圳天气算不上好,有点阴,但对于我这个从北京过去的人来说,只有一个字形容,热。当然,这个热不仅是指天气,还有紫光旗下新华三集团(以下简称“新华三”)应用驱动,云领未来——2017新华三智...
  • ZPWhPdjl
  • ZPWhPdjl
  • 2017年11月20日 00:00
  • 1323
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:面向对象的三大特性
举报原因:
原因补充:

(最多只允许输入30个字)