java三大特性——封装,继承,多态
1、封装
使用封装有三大好处:
1、良好的封装能够减少耦合。
2、类内部的结构可以自由修改。
3、可以对成员进行更精确的控制。
4、隐藏信息,实现细节。
5、封装我们也能够对对象的出口做出很好的控制,访问入口做一些控制
如对实体类进行属性封装方法:setter()和getter()
2、继承
同时在使用继承时需要记住三句话:
1、子类拥有父类非private的属性和方法。
2、子类可以拥有自己属性和方法,即子类可以对父类进行扩展。
3、子类可以用自己的方式实现父类的方法。
对于继承而言,子类会默认调用父类的构造器,但是如果没有默认的父类构造器,子类必须要显示的指定父类的构造器,而且必须是在子类构造器中做的第一件事(第一行代码)。
对于protected而言,它指明就类用户而言,他是private,但是对于任何继承与此类的子类而言或者其他任何位于同一个包的类而言,他却是可以访问的
public class Person {protected String name;protected int age;protected String sex;Person(String name){System.out.println("Person Constrctor-----" + name);}
}public class Husband extends Person{private Wife wife;Husband(){super("chenssy");System.out.println("Husband Constructor...");}public static void main(String[] args) {Husband husband = new Husband();}
}
首先我们需要明确,继承存在如下缺陷:
1、父类变,子类就必须变。
2、继承破坏了封装,对于父类而言,它的实现细节对与子类来说都是透明的。
3、继承是一种强耦合关系。
如果必须向上转型,则继承是必要的,但是如果不需要,则应当好好考虑自己是否需要继承。
3、多态
即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性
多态的前提条件有三个:
- 子类继承父类
- 子类覆盖父类的方法
- 父类引用指向子类对象
多态与向下转型
向下转型是指将父类引用强转为子类类型;这是不安全的,因为有的时候,父类引用指向的是父类对象,向下转型就会抛出ClassCastException,表示类型转换失败;但如果父类引用指向的是子类对象,那么向下转型就是成功的。
public class Wangxiaosi extends Wangsi {
public void write() {
System.out.println("记住仇恨,表明我们要奋发图强的心智");
}
public void eat() {
System.out.println("我不喜欢读书,我就喜欢吃");
}
public static void main(String[] args) {
Wangsi[] wangsis = { new Wangsi(), new Wangxiaosi() };
// wangsis[1]能够向下转型
((Wangxiaosi) wangsis[1]).write();
// wangsis[0]不能向下转型
((Wangxiaosi)wangsis[0]).write();
}
}
class Wangsi {
public void write() {
System.out.println("勿忘国耻");
}
public void read() {
System.out.println("每周读一本好书");
}
}
java三大特性——封装,继承,多态相关推荐
- Day55-每日一道Java面试题-Java 面向对象编程三大特性: 封装 继承 多态
Java 面向对象编程三大特性: 封装 继承 多态 封装 封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问.但是如果一个类没有 ...
- Java面向对象三大特性(封装继承多态)解释及案例
文章目录 包 包基本语法 命名规则 命名规范 导入包实例 访问修饰符 面向对象编程-封装 面向对象编程-继承 super关键词 super和this的比较 方法重写/覆盖 (override) 注意事 ...
- 深入理解Java面向对象三大特性 封装 继承 多态
1.封装 封装的定义: 首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系 为什么需要封装: 封装符合面向对象设计原则的第一条:单一性原则,一个类 ...
- Java提高篇 —— Java三大特性之继承
一.前言 在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事 ...
- python多态的三种表现形式_python小结----面向对象的三大特征(封装,继承,多态)
面向对象的三大特征: 封装,继承,多态 面向对象的编程思想核心:高类聚,低耦合–程序的设计模式范畴 封装 什么是封装: 在面向对象编程的思想中,对代码进行高度封装,封装又叫包装 封装就是指将数据或者函 ...
- 三大特征 封装 继承 多态
''' 1.面向对象与面向过程 面向过程:核心过程二字,过程即解决问题的步骤,就是先干什么后干什么 基于该思想写程序就好比在这是一条流水线,是一种机械式的思维方式 优点:复杂的过程流程化 缺点:扩展性 ...
- Java三大特性[封装,继承,多态]
封装 封装是使类中的成员变量都是private,并提供public方法访问这些变量的技术 实现封装: 1).修改属性的可见性来限制对属性的访问. 2).为每个属性创建一对赋值方法和取值方法,用于对这些 ...
- Python全栈开发——面向对象的三大特性(继承 多态 封装)
1.继承 1.两层意思 改变和扩展(详细看随笔继承和组合) 2.多态(体现在运行时的状态) 1.不同的类可以调用相同的方法,得到不同的结果 2.实际上是继承的一种体现机制 class H2o:def ...
- Java面向对象三大特性之继承多态的预习笔记,are you ready? 面对疾风吧!
文章目录 继承(extends) super关键字 方法重写 instanceof关键字 abstract关键字 接口(interface) 多态 继承(extends) AextendsB A继承了 ...
最新文章
- 哪些情况是友情链接作弊?总结了11种方法!
- Android序列化的存储和读取
- 1、SELECT:数据表查询语句
- android 监听屏幕是否锁屏
- Java Scala 混合编程导致 编译失败 ,【找不到符号】问题解决
- 如何安装MiniGUI 3.0在Linux PC
- 技术人员转行产品经理读这些书就够了
- MvcMusicStore学习中常出现的一个BUG
- Windows同步对象Event和Linux的条件变量
- public protected private
- Java入门第37课——猜字母游戏之设计数据结构
- 11gR2 集群(CRS/GRID)新功能—— SCAN(Single Client Access Name)
- 【SQL】实验六 自习室管理数据库系统的设计
- Odoo12社区版分拣单处理时生成欠单流程
- 计算机if函数自动填充,Excel表格函数怎么能实现自动填充-excel填充函数,excel表格根据公式自动填充...
- Android 语言码_国家码
- 小程序快递单号查询接口物流助手对接指南
- 三菱触摸屏怎么改时间_三菱触摸屏时钟设置步骤
- OFD文件、pdf文件相互转换、ofd文件在线预览
- ImageNet 1000个类 具体内容
热门文章
- [css] 用CSS实现一个轮播图
- 前端学习(2663):vue3.0的todolist
- 前端学习(2482):关于接口的调错
- 前端学习(2044)vue之电商管理系统电商系统之优化configwebpack和chainwebpack
- 前端学习(1993)vue之电商管理系统电商系统之根据id删除数据
- “睡服”面试官系列第十七篇之Reflect(建议收藏学习)
- 前端学习(1290):nodejs模块化的开发导出另一种方式
- 第五十四期:MongoDB与MySQL:如何选择
- centos7网卡识别不到,无法远程工具连接
- 树莓派UART串口编程--使用wiringPi库-C开发【1-基础应用】