Java的四个基本特性及相关问题

Java的四个基本特征

1)抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。

    抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。

2)继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类),得到继承信息的类被称为子类(派生类)。

    继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段。

3)封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。

    面向对象的本质就是将现实世界描绘成一系列完全自洽、封闭的对象。

    我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。

    可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口。

4)多态:是指允许不同子类型的对象对同一消息作出不同的响应。

    多态的理解(实现方式)

      方法重载(overload)实现的是编译时的多态性(也称为前绑定)

      方法重写(override)实现的是运行时的多态性(也称为后绑定)。运行时的多态是面向对象最精髓的东西

      要实现多态需要做两件事:1.方法重写(子类继承父类并重写父类中已有的或抽象的方法)

                  2.对象造型(用父类型引用指向子类型对象,这样同样的引用调用同样的方法就会根据子类对象的不同而表现出不同的行为)     

    项目中对多态的应用:消费者用户和店家用户登陆同一个购物网,有相同的方法Login,但会进入到不同的页面。

              两种客户都继承父类的Login方法,但对于不同的对象有不同的操作,导向的结果也不同。

 

相关问题:    

一.继承的好处和坏处
  好处:  
       1. 子类能自动继承父类的接口
       2. 创建子类的对象时,无须创建父类的对象
 
  坏处:  1. 破坏封装,子类与父类之间紧密耦合,子类依赖于父类的实现,子类缺乏独立性
       2. 支持扩展,但是往往以增加系统结构的复杂度为代价
       3. 不支持动态继承。在运行时,子类无法选择不同的父类
       4. 子类不能改变父类的接口

二.重载、重写
  重载发生在同一个类里面两个或者是多个方法的方法名相同但是参数不同的情况。
  重写发生在子类与父类之间。可以说子类重新定义了父类的方法。重写必须有相同的方法名,参数列表和返回类型。

  重写(override)又名覆盖:
    1.不能存在同一个类中,在继承或实现关系的类中;
    2. 名相同,参数列表相同,方法返回值相同,
    3.子类方法的访问修饰符要大于父类的。
    4.子类的检查异常类型要小于父类的检查异常。
  重载(overload)
    1.可以在一个类中也可以在继承关系的类中;
    2.名相同;
    3.参数列表不同(个数,顺序,类型) 和方法的返回值类型无关。

三.Java 中是否可以覆盖(override)一个 private 或者是 static 的方法?
答: Java 中 static 方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而 static 方法
  是编译时静态绑定的。static 方法跟类的任何实例都不相关,所以概念上不适用。
  java 中也不可以覆盖 private 的方法,因为 private 修饰的变量和方法只能在当前类中使用,
  如果是其他的类继承当前类是不能访问到 private 变量或方法的,当然也不能覆盖。
posted @ 2020-05-14 14:40  托托塔  阅读(435)  评论(0编辑  收藏  举报