封装:
  • 把对象的全部属性和服务结合在一起,形成不可分割的独立单位;
  • 尽可能隐藏内部细节。(数据隐藏、隐藏具体实现的细节)
    public、private、protected、default
  • public:既可以跨类访问,也可以跨包(package)访问
  • private:只能被该类对象访问,子类不能访问,更不能跨包访问
  • protected:只能被该类本身和子类访问,即使子类不在包中也可以访问
  • default:即不添加任何修饰符,只允许同一个包进行访
继承:
 1. is a 关系(eg:经理 is a 职员)
  • 初始化子类必须先初始化父类(虚拟机自动完成)因为子类的构造方法中会调用父类的构造方法
  • 单继承性:一个子类只能继承一个父亲
  • 关键字super:用来引用自己的父类,比如父类的方法和属性都是可以访问的

2.方法覆盖(也叫方法重写)

  • 返回类型、方法名称、参数列表必须与它所覆盖的方法相同
  • 访问权限不能缩小
  • 不能抛出更多异常

3.方法重载

  • 同一个方法(包括父类),方法名相同,参数列表不同,返回类型可相同可不同

4.组合与继承

  • 组合是”has-a“的关系。组合指在新类中创建原有类的对象,重复利用已有类的功能。而继承是根据其他类的实现来定义一个类的实现。
  • 是面向对象中两种代码复用的方式。
  • 能使用组合就尽量不要使用继承。除非是”is-a“的关系否,则不要轻易使用继承。
多态:
  • 简单说就是子父类(接口或实现类)中的类型转换
  1. 属性的特点:属性不是多态的,当子类中出现相同属性时,以左边的引用为准。
class A{
  int num = 3;
}
class B extends A{
  int num = 5;
}
main{
  A a = new B();
  sop(a.num);  //输出3
  B b = new B();
  sop(b.num);  //输出5
}
 2.非静态私有函数特点:
  • 编译时期:引用变量所属类(父类)中是否有调用方法,如果有编译通过,若没有编译失败。
  • 运行时期:如果子类复写了父类方法,运行子类中的方法,若没有运行父类方法
  3.静态函数特点:
  • 和属性一样,static方法不是多态的,无论编译还是运行都参考左边。
  4.instanceof运算符:
  • 前面是一个引用类型变量后面是一个类,用于判断前面的对象是否是后面的类的实例,如果是返回true,若不是返回false,避免了ClassCastException。

public interface Animal {
  public abstract void eat();
}

public class Cat implements Animal{
  public void eat(){
    System.out.println("chi yu");
  }
  public void catchMouse(){
    System.out.println("zhu lao shu");
  }
}

public class Dog implements Animal{
  public void eat(){
    System.out.println("chi gu tou");
  }
  public void kanHouse(){
    System.out.println("kan men");
  }
}

public class Test {
  public static void main(String[] args) {
  Animal a = new Cat();
  function(a);
  }

  public static void function(Animal a){
  a.eat();
  if(a instanceof Cat){
    Cat c = (Cat)a;
    c.catchMouse();
  }else if(a instanceof Dog){
    Dog d = (Dog)a;
    d.kanHouse();
    }
  }
}

简述Java面向对象三大特征:封装、继承、多态的更多相关文章

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

    简单总结一下 封装-即从很多类的抽取相同的代码 写在一个类里. 好处是 代码的重用,安全. 继承-减少代码的书写. 其好处也是 代码的重用. 多态- 把不同的子类对象都当作父类来看,可以屏蔽不同子类对 ...

  2. 深入理解Java面向对象三大特性 封装 继承 多态

    1.封装 封装的定义: 首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系 为什么需要封装: 封装符合面向对象设计原则的第一条:单一性原则,一个类 ...

  3. -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口 区别 多态 包 访问权限 内部类 匿名内部类 == 与 equal

    java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型  也就是 ...

  4. JAVA 面向对象 三大特征:继承

    什么是继承 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可. 多个类可以称为子类,单独这个类称为父类.超类或者基类. 子类可以直接访 ...

  5. Java 面向对象三大特征之一: 多态

    多态与类型转换 子类重写父类方法 1)位置:子类和父类中有同名的方法 2)方法名相同,返回类型和修饰符相同,参数列表相同       方法体不同 多态的优势和应用场合 多态:同一个引用类型,使用不同的 ...

  6. 封装继承多态-java面向对象三大特征

    第七章  封装和继承 一.面向对象的三大特征 封装.继承.多态 二.封装 将类的属性(字段)设置为私有的(private),并添加getter/setter方法操作属性. 注意:get|set方法的固 ...

  7. Java三大特性(封装,继承,多态)

    Java中有三大特性,分别是封装继承多态,其理念十分抽象,并且是层层深入式的. 一.封装 概念:封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将抽象得到的数据 ...

  8. OOP三大核心封装继承多态

    OOP支柱 3 个核心:封装 继承 多态 封装就是将实现细节隐藏起来,也起到了数据保护的作用. 继承就是基于已有类来创建新类可以继承基类的核心功能. 在继承中 另外一种代码重用是:包含/委托,这种重用 ...

  9. 【JavaSE】面向对象三大特征——封装、继承、多态

    前言:本文主要介绍思想 封装 封装这一概念并不仅存在与面向对象中,甚至说封装这一概念不仅限于编程中,其实生活中的封装无处不在.比如 需求:你到银行取钱 参数:你只需要提供银行卡和密码 返回值:柜员会将 ...

随机推荐

  1. zabbix安装配置agent程序之agent配置文件详解

    安装zabbix-agent http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/ 下载:zabbix-agent-3.2.0-1.el6.x86_64.r ...

  2. ARM协处理器CP15寄存器详解【转】

    本文转载i自;https://blog.csdn.net/gameit/article/details/13169405 用于系统存储管理的协处理器CP15   MCR{cond}     copro ...

  3. Python 面向对象的三大特性:封装,继承,多态

    # 面向对象的三大特性:封装,继承,多态 # 继承的影响:资源的继承,资源的使用,资源的覆盖,资源的累加 # 资源的继承,在Python中的继承是指能使用父类的资源,而不是说在子类也复制一份父类代码到 ...

  4. Kotlin 卸载APP自身

    package com.example.batdw01.myapplication import android.net.wifi.WifiManager import android.support ...

  5. LAMP服务器的搭建

    LAMP是一组构建Web应用平台的开源软件解决方案,它是一个开源套件组合.其中L:linux,A :Apache HTTP服务器,M : MySQL或MariaDB,P : perl或Python.这 ...

  6. Sqoop-将MySQL数据导入到hive orc表

    sqoop创建并导入数据到hive orc表 sqoop import \ --connect jdbc:mysql://localhost:3306/spider \ --username root ...

  7. DevExpress组件之——TreeList组件

    由于是第一次接触到第三方控件DevExpress中的TreeList,对其进行了进一步的研究,采用递归算法实现.做下自己熟悉第三方控件的整个过程,为和我一样处理于起步阶段的同仁们提供个参考,以下为最终 ...

  8. JavaWeb -- Struts1 多文件上传与下载 DownloadAction, DispatchAction

    1. 多文件上传与下载 上传下载jsp: <%@ page language="java" import="java.util.*" pageEncodi ...

  9. JSP数据交互(一)

    1.JSP内置对象 请求对象:request 输出对象:out 响应对象:response 应用程序对象:application 会话对象:session 页面上下文对象:pageContext 页面 ...

  10. cors实现跨域(.net和jquery)

    本文引用自:http://blog.csdn.net/xuwei_xuwei/article/details/29845865 客户端 一个jquery cors请求例子: $.ajax({     ...