java中三大基本特征

java中的面向对象的三大基本特征是:【封装】、【继承】、【多态】

封装:对象要有一个明确的边界;边界的划分(对象各司其职、对象的粒度、对象的可重用性)

  • 属性(bean、pojo):私有的private,有set和get方法
  • 方法:公开或私有 ,public/private
  • 方法声明和实现(interface,implements)

继承:共性放到父类,特性放到子类;子类,父类 --> 其实就是特殊 --> 一般

  • 关键字: extends
  • java中一个类最多只能有一个直接的父类,即单继承(具有简单性、树形结构)              tip:java中要实现多继承,通过接口来实现。
  • 父类中所有属性和方法都能继承给子类;父类中的私有方法不能继承给子类。
  • java中的访问修饰符
    访问修饰符 访问权限 继承
    private 本类 不能继承
    default 本类+同包 同包子类可以继承
    protected 本类+同包+不同子包 可以继承
    public 公开 可以继承

 

  • 构造对象过程
  •      (1)分配空间
           (2)递归地构造父类对象
                  a. 父类 初始化属性
                  b. 父类 构造方法
          (3)初始化属性
          (4)调用构造方法

  • super
          super()  调用父类的构造方法,只能出现在构造方法的第一行
          super.方法名   super表示父类的对象,通过它去调用父类的方法
          注意:在写类的时候,一定要写默认无参的构造方法,如果一个构造方法的
                   第一句既不是this(),也不是super()时,那么就会在这里隐含的调用
                   他的父类的无参的构造方法,即隐含的有super()。

多态:运行时多态(子类的对象放在父类的引用中,例如 Animal a=new Dog,子类对象当父类对象来使用。)

  • 多态原则:
           (1)对象类型不变
           (2)只能用引用调用其引用类型中定义的方法
           (3)运行时,根据对象的实际类型去找子类覆盖之后的方法
                 例子:
                      有Animal类中有eat()和sleep()两个方法,sleep()中睡8小时;子类Dog中有
                      eat()方法,sleep()方法中睡6小时,还有wangwang()方法。
                      现创建Animal a=new Dog(); 不能调用a.wangwang(),调用a.sleep()输出睡6小时。
  • 对象的强制转换 :
                       格式: 引用 instanceof 类型
                            引用所指的对象是否与类相符,返回值boolean值。
                     用法:
                           Animal a=new Cat();
                           if(a instanceof Dog)
                           {
                              Dog d=(Dog)a;
                              d.wangwang();
                            }
                     说明:如果只有Dog d=(Dog)a;运行时错误,因为a是Cat而不是Dog (多态原则第一条)
  • 多态的灵活变换
           (1)用于参数列表上:
                                   public void m(A a){} 可以用A类的任何子类对象作为参数
            (2)用在返回值上:
                                  public A m(){}  这个方法可能返回A类的任何子类对象
  •  

时间: 2024-12-13 18:55:20

java中三大基本特征的相关文章

java中三大修饰符

一.static 1.属性:类变量 定义在类以内,方法以外,全类有效,全类公共一个属性 类变量与创建对象无关,有默认值0 使用方式  类名.类变量     System.out.println(); 作用:计数器   生成id class User{ static int count; public User(){ count++; } } Class Account{ long id; static long num = 10000L; public Account(){    id = nu

java中三大集合框架

一.List集合 1.List实现的超级父类接口:Collection 存储一组不唯一(允许重复),有序的对象. 2.了解ArrayList类 A):定义的格式:ArrayList<具体类型> 集合名 =  new ArrayList<具体类型>(); B):数据的存储方式:底层还是用数组存储 C):对象的类型:在List集合中,如果定义集合对象时没有定义定义对象的类型,就表示什么类型的对象都可以直接存储到List集合中,如果想要运用里面的元素,则需要用instanceof来判断元

JAVA的三大特征 封装继承多态- 简单总结

简单总结一下 封装-即从很多类的抽取相同的代码 写在一个类里. 好处是 代码的重用,安全. 继承-减少代码的书写. 其好处也是 代码的重用. 多态- 把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化. 总的来说还是接口的重用. 那么总结一下,JAVA的三大特征 其好处 就是代码与接口的重用. 封装可以隐藏实现细节,使得代码模块化: 继承可以扩展已存在的代码模块(类): 它们的目的都是为了——代码重用. 而多态则是为了实现另一个目

Java 中的三大特性

我们都知道 Java 中有三大特性,那就是继承 ,封装和多态 .那我今天我就来说说这几个特性 . 老样子 ,先问问自己为什么会存在这些特性 .首先说封装 ,封装就是使用权限修饰符来实现对属性的隐藏 ,同时提供一些共有的 get / set 方法来对数据进行访问 .这样怎么实现封装的效果的呢 ?我们可以在 get 或 set 方法内部添加一些逻辑控制语句 .比方说在设置年龄的时候 ,我就限制传入的 age 不能大于 120 .代码实现可以这样写 . public void setAge(int a

深入分析Java中的I/O类的特征及适用场合

Java中有40多个与输入输出有关的类,如果不理清它们之间的关系,就不能灵活地运用它们. 如果从流的流向来分,可分为输入流和输出流,而输入流和输出流又都可分为字节流和字符流.因而可将Java中的I/O流以下图进行划分: 注意上图并非继承关系,而只是一个示意图. Java中的其它与I/O流处理相关的类其实都是从InputStream,Reader,OutputStream和Writer这4个基类继承而来.其中InputStream和OutputStream为字节流,Reader和Writer为字符

Java中类的继承,属性和方法的四种修饰符的作用范围,final关键字,java的三大特点中的2个:封装和多态,以及多态的一个设计模式,模板方法模式(template method)

(一)Java中的继承: 关于继承,在Java中类的继承只能是单继承,不像C+++那样灵活,可以多继承,多继承的后果就是各种关系乱套,就相当于一个孩子有2个母亲一样,社会关系的复杂,不利于程序后期的开发和维护,所有Java中的类是只能单继承,通过接口来实现多继承:对于接口的话,是可以多继承的,例如:A接口可以同时继承接口B和接口C,但是有一点要注意,就是实现接口A的类必须要实现接口A.B.C中所有的抽象方法:接口之所以可以多继承,就是因为接口结构比较简单. 继承是通过extends关键字来实现,

Java中的继承、封装、多态的理解

Java中的继承.封装.多态 继承的理解: 1.继承是面向对象的三大特征之一,也是实现代码复用的重要手段.Java的继承具有单继承的特点,每个子类只有一个直接父类. 2.Java的继承通过extends关键字来实现,实现继承的类被称为子类,被继承的类称为父类(有的也称其为基类.超类),父类和子类的关系,是一种一般和特殊的关系.就像是水果和苹果的关系,苹果继承了水果,苹果是水果的子类,水果是苹果的父类,则苹果是一种特殊的水果. 3.Java使用extends作为继承的关键字,extends关键字在

java中重载与重写的区别

首先我们来讲讲:重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. (2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义. 调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性. (3) 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不

(1) 深入理解Java面向对象三大特性 封装 继承 多态

转眼已经工作快6年了,最开始做了2年J2EE:然后整了2年的数据仓库,主要是Cognos的报表开发:现在从事4G LTE核心网的开发,用的语言任然是Java,但写代码的机会不多,基本都是看代码找BUG,偶尔做点new feature也是在比较成熟的框架上复制.粘贴.修改,大部分时间还是在理解业务,钱多.事少.离家近,当时来这家公司图的是后面2点,2年过去了,英文水平有所提升,对敏捷开放也有一定的了解,但技术方面明显退步了或者说没有进步吧,本来以前也不怎么好,因为工作上用不到,自己也没怎么学习,所