java面向对象的一些知识
(1)this和super关键字的用法
this表示调用本类实例方法和成员变量,this引用就是对一个对象的引用,如this.name 表示本类成员变量name,静态方法中不能使用this关键字。
super关键字的用法:调用父类的构造方法,如super([参数列表]);操作被隐藏的成员变量和被重写的方法。
(2)几种常见的访问修饰符:
private表示私有的,便是在本类是可见的。在其它类中是不可见或者只有通过本类提供的方法来访问它。
protect表示受保护的,表示在本包中是可见的。
public表示公开的,没有什么权限。
属性一般设置为private,表示成员属性,方法一般设为public 也有private,一般private方法是供类内部使用(帮助方法)。
(3)重写(override)和重载(overload):
重写表示在继承过程中对父类的方法进行在重写,其方法名和参数返回值类型是不变的。重载表示同一类的中方法名、返回值类型相同,但是参数类型,参数个数,参数位置的不一样。
(4)面向对象封装的特点:
封装就是将数据和方法包装进类中,加上具体实现的掩藏。其结果就是同时带有特征和行为的数据类型。
(5)里氏替换Lsp,上转型,下转型,如
public void feedDog(Pet p, Food f) {
System.out.println("主人给" + p.getName() + "喂食" + f.getName());
if (p instanceof Dog) {
// Pet d=(Dog)p;
// Food b=(Bone)f;
// d.eatFood(b);
p.eatFood(f);
} else {
System.out.println("请给狗狗喂食!");
}
(5)多态:
广义的多态包括重载(overload)和重写(override),狭义的多态仅指重写。
重写:对多个对象下达同一命令时,根据重写的方法的不同,而有不同的执行结果。
重写多态的三种实现方式:1,直接重写,子类直接重写父类同名同参的方法,父类new一个子类对象,通过父类方法,调用子类重写的方法。
2,抽象类抽象方法的重写(抽象类的一些要点:抽象类不能够实例化,也就是说不能在堆空间给其分配空间;抽象方法只能在抽象类中;实现抽象类的继承,必须重写基类的 抽象方法;抽象方法只声明不实现。通过抽象基类new子类,调用父类.抽象方法()实现多态)
3,接口的重写。接口的概念:a,接口是一套规范,接口中只声明方法 b,实现接口就具有了接口的功能,拓展子类的功能 c,接口可以实现多个,弥补了java单继承的缺 点。
java常见的接口:Collection,List,Iterable,Set,connection,Statement,PerParedStatement,Comparable,Comparator,Runable
其中对象数组在使用Arrays.sort()方法的时候,如果在一段程序代码中只需实现一种排序方式,则需要对象类实现Comparable接口。如果需要同一段程序中实现多种排序, 则需要写其他排序规则的类来实现Comparator接口。
(6)接口和抽象类的异同点。相同点都是多态的实现方式,都实现了重写。不同点是:抽象类属于继承,抽象类的继承类似与“is a”的语句,而继承接口类似与“like a”的语句。
java面向对象的一些知识的更多相关文章
- Java面向对象 其他对象
Java面向对象 其他对象 知识概要: (1)可变参数 (2)静态导入 (3)System (4)Runtime (5)Date Calendar (6)Math 本 ...
- 如何讲清楚 Java 面向对象的问题与知识?(类与对象,封装,继承,多态,接口,内部类...)
写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...
- JAVA面向对象-----面向对象(基础预备知识汇总)
终于整理好了面向对象基础预备知识,但是有点多,所以你们懂的,贴图,较长的代码我还是会排版出来的,我不想把时间浪费在排版上在word里排版一次已经很浪费时间了,所以请谅解. public class C ...
- Java程序设计 实验二 Java面向对象程序设计
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1353 姓名:李海空 学号:20135329 成绩: 指导教师:娄嘉鹏 ...
- Java面向对象的封装
封装是Java面向对象的三大特性之一,通常我们是通过包管理机制同时对类进行封装,隐藏其内部实现细节,通常开发中不允许直接操作类中的成员属性,所以属性一般设置为私有权限private,类中一般会给出一些 ...
- Java面向对象的三大特征
Java面向对象的三大特征 java面向对象的三大特征:“封装.继承.多态”.更多Java技术知识,请登陆疯狂软件教育官网.微信搜索微信号:疯狂软件,参加2015年优惠活动,有机会获得优惠劵和代金劵. ...
- 【重走Android之路】【Java面向对象基础(三)】面向对象思想
[重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinkin ...
- 【重走Android之路】【Java面向对象基础(一)】数据类型与运算符
[重走Android之路][基础篇(一)][Java面向对象基础]数据类型与运算符 1.数据类型介绍 在Java中,数据类型分为两种:基本数据类型和引用类型. 基本数据类型共8种,见下表: 基本数 ...
- Java面向对象详解
Java面向对象详解 前言:接触项目开发也有很长一段时间了,最近开始萌发出想回过头来写写以前学 过的基础知识的想法.一是原来刚开始学习接触编程,一个人跌跌撞撞摸索着往前走,初学的时候很多东西理解的也懵 ...
随机推荐
- moviepy音视频剪辑:视频变换处理与内容相关的变换函数headblur、mask_and/or、mirror_x/y、rotate、painting、scroll介绍
一.引言 在<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>介绍了剪辑基类的fl.fl_time.fx方法,在<moviepy音视频剪辑:视频剪辑基类VideoC ...
- 第3.3节 强大的Python列表
一. 列表切片操作补充 列表切片支持所有序列切片的方法,以倒序切片和步长大于1的情况再举例验证一下: l=[1,2,3,4,5] l[::2] #结果[1, 3, 5] l[-1::2] #结果[5] ...
- 【Alpha冲刺阶段】Scrum Meeting Daily2
[Alpha冲刺阶段]Scrum Meeting Daily2 1.会议简述 会议开展时间 2020/5/23 8:30-9:00 PM 会议基本内容摘要 讨论了基础的分工,以及明确了各自模块需要完成 ...
- 一文看懂 Kubernetes 服务发现: Service
Service 简介 K8s 中提供微服务的实体是 Pod,Pod 在创建时 docker engine 会为 pod 分配 ip,"外部"流量通过访问该 ip 获取微服务.但 ...
- 【题解】「UVA10116」Robot Motion
Simple Translation 让你模拟一个机器人行走的过程,如果机器人走入了一个循环,输出不是循环的长度和是循环的长度,如果最终走出来了,输出走的步数. Solution 直接模拟即可,本题难 ...
- springboot配置ssl证书
springboot默认使用的是tomcat: 1.先到阿里云上注册一个证书,绑定域名:后面可以在管理中下载证书,下载tomcat对应的证书(一个*.pfx文件和*.txt文件) 2.将pfx文件拷贝 ...
- Sublime2-3 Package Control安装
从菜单 View - Show Console 或者 ctrl + ~ 快捷键,调出 console.将以下 Python 代码粘贴进去并 enter 执行,不出意外即完成安装.以下提供 ST3 和 ...
- 牛客挑战赛46 C
题目链接: 排列 考虑\(dp\),我们思考如何设计状态 将第i个数插入i-1个数中,我们考虑会新增多少个超级逆序对 假设将\(i\)插入后\(i\)的位置为\(l\),\(i-1\)的原来的位置为\ ...
- Numpy的学习5-array的分割
import numpy as np A = np.arange(12).reshape((3, 4)) print(A) """ array([[ 0, 1, 2, 3 ...
- 每日CSS_霓虹灯按钮悬停效果
每日CSS_霓虹灯按钮悬停效果 2020_12_20 1. 代码解析 1.1 html 代码片段解析 <a href="#"> <span></spa ...