封装、继承与多态

封装

封装的作用(好处)

  1. 提高程序安全性,保护数据
  2. 隐藏代码的实现细节
  3. 统一接口
  4. 增加系统可维护性

属性私有(关键字private)

加上Private可使该属性私有于一个类,在其他地方new此类后不可通过'.'访问私有属性

get,set

用于操作私有属性

e.g.

//get获取这个数据
public String getName(){
return this.name;
}
//set给这个数据设置值
public void setName(String name){
this.name = name;
}

快捷键:alt+insert可以直接生成get、set

继承(关键字extends)

  • 继承是类和类之间的关系

  • 只有单继承没有多继承(不可同时继承多个类)

  • private不可继承,但可以用get、set进行操作

  • 一般继承的都是public

  • 继承是扩展的意思

  • 子类是父类的拓展

  • 可以看作是树

e.g.

//父类
public class Person{ }
//派生类(子类)
public class Student extends Person{ }
//派生类(子类)
public class Teacher extends Person{ }

Ctrl+H为打开继承树的快捷键

Object是所有类都默认直接或间接继承的类

super、this

super.属性 表示父类里的属性

this.属性 表示此类里的属性

  • 子类中默认隐藏代码:调用父类的无参构造
  • 调用父类构造器必须在字类构造器的第一行
  • super只能在子类的方法或构造方法中
  • super和this不能同时调用构造方法、

方法重写

  • 重写都是方法的重写,与属性无关
  • 父类的引用指向子类
  • 静态方法的调用只和左边定义的数据类型有关

e.g.

//父类
public class Person{
public static void test(){
Sytem.out.println("P->test");
}
}
//派生类(子类)
public class Student extends Person{
public static void test(){
Sytem.out.println("S->test");
}
}
Person p = new Student();
p.test();//调用了Person中的test
Student s = new Student();
s.test();//调用了Student中的test
  • Override 重写

    • 快捷键Alt+Insert
    • 只和非静态方法有关
    • 重写后调用方法会执行重写后方法
    • 重写对象关键字public
    • 子类重写父类的方法
    • 为什么重写
      • 父类的功能子类不一定满足
  • 注:

    • 方法名必须相同,方法体不同
    • 参数列表必须相同
    • 修饰符范围可以扩大但不能被缩小 public>Protected>Default>private
    • 抛出的异常可以缩小但不能扩大
    • static,final,private 方法不可重写

多态

  • 多态是方法的多态而不是属性的

  • 一个类能调用的都是自己的或从父类继承的

  • 父类和子类要有联系否则类型转换异常

  • 存在条件:继承关系,方法需要重写,父类引用指向子类对象 e.g.Father f1 = new Son();

Sytem.out.println(X instanceof Y);//检测是否编译可通过(是否有父子关系)通过为true,不通过为false
  • 类型转化

  • 低转高可以直接转

Person p = new Student();
  • 高转低强制转换
Student student = (Student) p;

​ 或者

((Student) p).子类方法;

​ 直接用子类方法

  • 子类转换为父类可能丢失自己本来的方法

(Java)面向对象的三大特征的更多相关文章

  1. Java面向对象的三大特征

    Java面向对象的三大特征 java面向对象的三大特征:“封装.继承.多态”.更多Java技术知识,请登陆疯狂软件教育官网.微信搜索微信号:疯狂软件,参加2015年优惠活动,有机会获得优惠劵和代金劵. ...

  2. Java面向对象的三大特征和五大原则

    Java面向对象的三大特征 封装 封装(Encapsulation)是指属性私有化,根据需要提供setter和getter方法来访问属性.即隐藏具体属性和实现细节,仅对外开放接口,控制程序中属性的访问 ...

  3. JAVA面向对象:三大特征 封装讲解

    一.JAVA封装 1.封装的理解 封装是 JAVA 面向对象思想的 一 种特性,也是一种信息隐蔽的技术 2.封装的原则 将类中的某些信息隐藏起来,来防止外部程序直接访问,通过类中的方法实现对隐藏的信息 ...

  4. Java面向对象的三大特征详解

    一.封装(Encapsulation)       封装也称信息隐藏,是指利用抽象数据类型把数据和基于数据的操作封装起来,使其成为一个不可分割的整体,数据隐藏在抽象数据内部,尽可能的隐藏数据细节,只保 ...

  5. 封装是java面向对象编程三大特征之一。 简单的属性封装

    package com.cqvie.Hello; class Person { private int age; private String name; public void tell() {   ...

  6. Java学习:面向对象的三大特征:封装性、继承性、多态性之继承性

    面向对象的三大特征:封装性.继承性.多态性. 继承 继承是多态的前提 ,如果没有继承,就没有多态. 继承主要解决的问题就是:共性抽取. 继承关系当中的特点: 子类可以拥有父类的“内容” 子类还可以拥有 ...

  7. 谈谈Java面向对象的三大特性

    Java面向对象的三大特性就是指封装.继承.多态了. 一.封装: 概念:封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. (举例:笔记本电脑就是一个封装体,Java语言中最小的封装体就是函数 ...

  8. Java的OOP三大特征之一——继承

    Java的OOP三大特征之一——继承 子类继承父类的特征和行为(属性和方法),使得子类具有父类的各种属性和方法.或子类从父类继承方法,使得子类具有父类相同的行为. 特点:在继承关系中,父类更通用.子类 ...

  9. Java学习笔记二十五:Java面向对象的三大特性之多态

    Java面向对象的三大特性之多态 一:什么是多态: 多态是同一个行为具有多个不同表现形式或形态的能力. 多态就是同一个接口,使用不同的实例而执行不同操作. 多态性是对象多种表现形式的体现. 现实中,比 ...

  10. Java学习笔记二十一:Java面向对象的三大特性之继承

    Java面向对象的三大特性之继承 一:继承的概念: 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方 ...

随机推荐

  1. Map 综述(一):彻头彻尾理解 HashMap

    转载自:https://blog.csdn.net/justloveyou_/article/details/62893086 摘要: HashMap是Map族中最为常用的一种,也是 Java Col ...

  2. Playwright-python 教程

    安装 pip install playwright -i https://mirrors.aliyun.com/pypi/simple/ 使用阿里源,下载速度快一点. python -m playwr ...

  3. Go版本管理--go.sum

    目录 1. 简介 2. go.sum文件记录 3. 生成 4.校验 5.校验和数据库 1. 简介 为了确保一致性构建,Go引入了go.mod文件来标记每个依赖包的版本,在构建过程中go命令会下载go. ...

  4. Java全栈方向学习路线

    前端方向 前端基础 HTML --> https://www.w3school.com.cn/html/index.asp CSS --> https://www.w3school.com ...

  5. ES6对象扩展——部分新的方法和属性

    1.Object.is方法返回布尔值,和全等于===差不多,除了参数是+0和-0,以及NaN时 //Object.is,返回布尔值,和全等于===差不多,除了+0和-0,以及NaN console.l ...

  6. Clean Architecture For RazorPage 实现多语言和本地化

    最近终于把多语言功能加上了,这次就再发一篇,讲一下在asp.net core环境下如何实现多语言和本地化(Globalization and localization)功能,主要参看:ASP.NET ...

  7. SpringMVC笔记(2)

    一.SpringMVC的数据响应 1.1 数据响应方式 1.1.1 页面跳转 直接返回字符串 将返回的字符串与内部资源视图解析器的前后缀拼接 进行访问(默认为转发) 通过ModelAndView对象返 ...

  8. HZ游记

    HZ 游记 Day -1 收拾东西,准备出发. 话说这几天一直比较懒,也没什么心情和效率学习,颓废好几天了,希望到衡水以后能感觉好点. 不知道衡水有没有妹子 非常想看看衡水的样子,但是又害怕封闭式教学 ...

  9. python轻量级orm框架 peewee常用功能速查

    peewee常用功能速查 peewee 简介 Peewee是一种简单而小的ORM.它有很少的(但富有表现力的)概念,使它易于学习和直观的使用. 常见orm数据库框架 Django ORM peewee ...

  10. Golang入门学习(五):异常处理

    文章目录 2.5 错误处理机制 2.5.1 基本说明 2.5.2 入门示例 2.5.3 自定义错误 2.5 错误处理机制 2.5.1 基本说明 Go语言追求简洁优雅,因此并不支持传统的try-catc ...