简谈面对对象特征:继承、封装、多态

在上一篇博客中已经把面对对象的简单思维已经解释,现在就根据这些解释,进行面对对象编程的具体特点。

(这里只是讲解一部分编程意识想法,如果有其他建议可以在评论区中说出来)

特点1、封装

封装:(建议先百科后在看)不让外界(类外)直接调用类的字段或者私有方法进行操作,就是自定义类的字段和方法进行包装起来,然后通过类中设定的公有的方法给外界调用,从而增加一点操作数据的安全性。

  1. 封装的意识(封装好的基类,就是j2ee中的javabean)

找对象(api文档)、创建对象、怎么使用和维护对象

  1. 在Java 中的体现及步骤
  • 把类中的字段私有化;
  • 给每一个字段都提供一组getter  setter方法  (方法的规范写法);setXxx

在测试类中尝试创建对象,并通过调用getter setter方法完成 对字段的赋值和取值;

  • 提供一个无参数的构造方法

                 例子:

class.Person{

private int d;

省略getset方法(eclipse快捷方式:shitf+alt+s自动生成)、构造方法

}

特点2 继承

继承:在多个子类的基础上面抽取共有属性的行为到一个父类中去,或者从一个类延伸其他字段和方法,拥有父类属性和行为,又拥有自己的独有的东西(属性、行为);拓展对象类的设定,可以增加类的复用率,减少代码冗余

1.解析继承:

  1. 三个类都有重复的代码,可以把这部分内容 抽出去,抽出去放到另外一个类里面;上面的类我们叫做  父类(超类,基类,根类)
  2. 下面的3个类和上面的类需要发生一点关系【继承】
  3.  下面的类我们叫做 子类(派生类,拓展类)

2.意识:

在设定一些工具类时,可以根据功能延伸时通过继承再进行添加类中功能;

在设定多个对象自定义类时,可以将相同功能和字段提取出来,形成根类,规范代码的编写,增加代码的阅读的速度

(类与类、接口与接口都是可以继承的)

3.特点:

  1. java中只支持单继承
  2. 但也支持多重继承关系
  3. 没有显示的继承,那么隐式的继承Object
  4. 只能继承到父类的私有属性

4.例子:

class Fruit{

}

class Apple extends Fruit{

}

class Banana extends Fruit{

}

class Pear extends Fruit{

}

特点3 多态

前提:拥有继承关系

在父类对象中,存放子类的对象,让对象拥有多种形态变化称为多态(体现类与类之间的关系)

编译时:在java中进行编译时,对象调用的方法会先检验父类

运行时:实际调用的是子类的方法(子类没有,会向上往父类找)

1.多态解析:

  1. 编译时 :

 Fruit f = new Pear();f.getName();

  1. f 编译时,看的是父类类型,会在父类类型中getName方法
    1. 如果没有找到,会继续向上找[f编译时父类类型]
      1. 找到:编译通过
      2. 找不到:编译报错
      3. 注意:是不会向下找的[f编译时子类类型]
  2. 运行时 :
    1. 先到运行时类型[Pear]中找getName方法,
      1. 如果找到:就执行,
      2. 没找到:向上到父类中找并执行

2.意识:

  1. 在逻辑层中,尽量少使用多态(减少逻辑实现类与类之间的复杂性,多态使用过多对象,会影响自身判断)
  2. 在业务层中,尽量多使用多态(增加查看业务时类与类之间的继承关系性,可加快理解代码)

3.例子:

class Fruit{

void  getName(){}

}

class Apple extends Fruit{

void  getName(){}

}

class Banana extends Fruit{

}

class Pear extends Fruit{

}

多态:

Fruit ft = new Apple();

ft.getName();//这里调用的是Apple 类的getName()方法

之后,面对对象的介绍结束了。

 

说到这,面对对象的这三个特征,已经解析完了,这些是我自己的一些理解,肯那个有些不到位,希望不要介意,可以去评论,多谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值