Java语言面向对象的一些基本特点
封装
1、 面向对象语言使用class封装属性和方法。
2、 属性一般要求定义为private,封装保护
继承。
继承的例子随处可见。需要符合is-a关系,父类更加通用,子类更加具体。。
在子类中使用super关键字:
1、调用父类的构造方法使用super
2、在子类中可以使用super调用父类中方法
多态:
1、 开闭原则:能够添加新的代码而不是修改原有代码来使用需求的变更。对修改关闭,对增加开放。
2、 子类可以无条件的给父类赋值。
多态的实现方式:
1、普通类
2、抽象类
3、接口(推荐);
Java的构造方法理解:
Java构造方法是Java类中的一个比较特殊的方法,特殊在以下几点:
1、 该方法一定与类同名,
2、 该方法没有返回值(void也不行)
3、 该方法不能手工调用,在创建类的实例的时候被系统自动调用
4、 一个类可以没有自定的构造方法,它将使用系统的隐式午餐构造方法,也可以自定义多个构造方法,他们之间构成重载,可以相互调用。
5、 如果自定了有参构造函数,将会评比系统默认的无参构造函数
6、 构造方法不能被继承,决定了他不能重写,直接子类调用父类方法,使用super关键字。
Java中的接口与抽象类
1、 接口中的方法和属性必须是public
2、 方法特征的集合,但是没有方法的实现。
3、 一个类可以实现一个或多个接口,只可以继承一个类
4、 接口没有方法实现,不能达到复用的目的。为了达到复用的目的,可以使用抽象类,
抽象类的特点;
1、 不可实例化,与接口一致,都不可以实例化。
2、 接口中只可以定义常量和抽象方法,抽象类与普通类的不通知仅在于其中存在有抽象方法,,继承与抽象类必须实现被继承类中的抽象方法。
3、 抽象类是一个未定义完整的类。其中的抽象方法将会延迟到子类去实现
4、 抽象类+子类实现的抽象防范 == 完整的类,
几个简单的问答:
1、 一个抽象类可不可以没有抽象方法、 可以,他可以和一个完整的类一样,但是这样就失去了抽象类存在的意义
2、 可以有多个抽象方法,抽象方法一定不能有实现。
3、 一个普通类中是否可以包含抽象方法? 当然不可以,若有,将会变成抽象类
4、 抽象类的子类一定要实现抽象类中的抽象方法,不一定对,其子类可以为抽象类,
5、 接口的实现类一定要实现接口中多定义的方法吗?如果接口的实现类没有实现接口中抽象方法、其必须为抽象类
6、 接口是可以继承的。
Java语言面向对象的一些基本特点的更多相关文章
- 2018.3.5 Java语言基础与面向对象编程实践
Java语言基础与面向对象编程实践 第一章 初识Java 1.Java特点 http://www.manew.com/blog-166576-20164.html Java语言面向对象的 Java语言 ...
- Java语言中的面向对象特性总结
Java语言中的面向对象特性 (总结得不错) [课前思考] 1. 什么是对象?什么是类?什么是包?什么是接口?什么是内部类? 2. 面向对象编程的特性有哪三个?它们各自又有哪些特性? 3. 你知 ...
- 关于Java语言和面向对象记录
本科时常用的c语言是面向过程的语言,而Java是面向对象的语言 Java语言的11个关键术语 简单性.可移植性.面向对象.分布式.高性能.解释型.健壮性.多线程.安全性.动态性.体系结构中立 面向对象 ...
- [java学习笔记]java语言核心----面向对象之this关键字
一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理: 代表的是当前对象. this就是所在函数 ...
- [java学习笔记]java语言核心----面向对象基础
1.面向对象概述 面向对象是java语言的核心.是对应于面向过程而言的. 面向过程:强调的是过程,即动作.在java中动作就是函数.C语言就是面向过程的. 如:把大象装进冰箱需要几步? 答:需要三步: ...
- Java语言中的面向对象特性
面向对象的基本特征 1.封装性 封装性就是把对象的属性和服务结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节,包含两个含义: ◇ 把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位( ...
- 第二十五节:Java语言基础-面向对象基础
面向对象 面向过程的代表主要是C语言,面向对象是相对面向过程而言,Java是面向对象的编程语言,面向过程是通过函数体现,面向过程主要是功能行为. 而对于面向对象而言,将功能封装到对象,所以面向对象是基 ...
- Java语言中的面向对象特性:封装、继承、多态,面向对象的基本思想(总结得不错)
Java语言中的面向对象特性(总结得不错) [课前思考] 1. 什么是对象?什么是类?什么是包?什么是接口?什么是内部类? 2. 面向对象编程的特性有哪三个?它们各自又有哪些特性? 3. 你知道jav ...
- 已看1.熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的Java API,包括集合框架、多线程(并发编程)、I/O(NIO)、Socket、JDBC、XML、反射等。[泛型]\
1.熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的Java API,包括集合框架.多线程(并发编程).I/O(NIO).Socket.JDBC.XML.反射等.[泛型]\1* ...
随机推荐
- jQuery动画的实现
没有引入deferred机制,其余流程都有了 //////////// //创建动画缓动对象 // //////////// function Tween(value, prop, animation ...
- Android okHttp网络请求之文件上传下载
前言: 前面介绍了基于okHttp的get.post基本使用(http://www.cnblogs.com/whoislcj/p/5526431.html),今天来实现一下基于okHttp的文件上传. ...
- 实践 Neutron 前的两个准备工作 - 每天5分钟玩转 OpenStack(78)
上一节配置了 linux-bridge mechanism driver,本节再做两个准备工作: 1. 检视初始的网络状态.2. 了解 linux bridge 环境中的各种网络设备. 初始网络状态 ...
- 应用程序框架实战十八:DDD分层架构之聚合
前面已经介绍了DDD分层架构的实体和值对象,本文将介绍聚合以及与其高度相关的并发主题. 我在之前已经说过,初学者第一步需要将业务逻辑尽量放到实体或值对象中,给实体“充血”,这样可以让业务逻辑高度内聚, ...
- 应用程序框架实战十七:DDD分层架构之值对象(层超类型篇)
上一篇介绍了值对象的基本概念,得到了一些朋友的支持,另外也有一些朋友提出了不同意见.这其实是很自然的事情,设计本来就充满了各种可能性,没有绝对正确的做法,只有更好的实践.但是设计与实践的好与坏,对于不 ...
- iOS开发之使用Runtime给Model类赋值
本篇博客算是给网络缓存打个基础吧,本篇博客先给出简单也是最容易使用的把字典转成实体类的方法,然后在给出如何使用Runtime来给Model实体类赋值.本篇博客会介绍一部分,主要是字典的key与Mode ...
- 用html5的视频元素所遇到的第一个坑
html5 有一个video标签,这个是被大家所熟知的事情.按照w3c的规范,我认真的写出如下代码: <video preload="auto" controls=" ...
- EF CodeFirst EntityTypeConfiguration 自关联映射配置
实体示例代码: public class Message { public Message() { } public int ID { get; private set; } public strin ...
- 玩转Jquery,告别前端知道思路忘记知识点的痛苦
本节内容: 本章主要讲解一下jquery,主要是工作中用的前端框架是datetables框架,然后datetables框架又是基于jqeury研发的,所以要想学一个东西,就必须要了解其底层,不然走路都 ...
- iOS - 类扩展与分类的区别
类扩展 (Class Extension也有人称为匿名分类) 作用: 能为某个类附加额外的属性,成员变量,方法声明 一般的类扩展写到.m文件中 一般的私有属性写到类扩展 使用格式: @interfac ...