(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面向对象的一些知识的更多相关文章

  1. Java面向对象 其他对象

     Java面向对象  其他对象 知识概要:             (1)可变参数 (2)静态导入 (3)System (4)Runtime (5)Date  Calendar (6)Math 本 ...

  2. 如何讲清楚 Java 面向对象的问题与知识?(类与对象,封装,继承,多态,接口,内部类...)

    写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...

  3. JAVA面向对象-----面向对象(基础预备知识汇总)

    终于整理好了面向对象基础预备知识,但是有点多,所以你们懂的,贴图,较长的代码我还是会排版出来的,我不想把时间浪费在排版上在word里排版一次已经很浪费时间了,所以请谅解. public class C ...

  4. Java程序设计 实验二 Java面向对象程序设计

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计 班级:1353  姓名:李海空  学号:20135329 成绩:             指导教师:娄嘉鹏 ...

  5. Java面向对象的封装

    封装是Java面向对象的三大特性之一,通常我们是通过包管理机制同时对类进行封装,隐藏其内部实现细节,通常开发中不允许直接操作类中的成员属性,所以属性一般设置为私有权限private,类中一般会给出一些 ...

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

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

  7. 【重走Android之路】【Java面向对象基础(三)】面向对象思想

    [重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想   1 面向对象的WWH   1.1 What--什么是面向对象         首先,要理解“对象”.在Thinkin ...

  8. 【重走Android之路】【Java面向对象基础(一)】数据类型与运算符

    [重走Android之路][基础篇(一)][Java面向对象基础]数据类型与运算符   1.数据类型介绍 在Java中,数据类型分为两种:基本数据类型和引用类型. 基本数据类型共8种,见下表: 基本数 ...

  9. Java面向对象详解

    Java面向对象详解 前言:接触项目开发也有很长一段时间了,最近开始萌发出想回过头来写写以前学 过的基础知识的想法.一是原来刚开始学习接触编程,一个人跌跌撞撞摸索着往前走,初学的时候很多东西理解的也懵 ...

随机推荐

  1. moviepy音视频剪辑:视频变换处理与内容相关的变换函数headblur、mask_and/or、mirror_x/y、rotate、painting、scroll介绍

    一.引言 在<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>介绍了剪辑基类的fl.fl_time.fx方法,在<moviepy音视频剪辑:视频剪辑基类VideoC ...

  2. 第10.10节 Python使用__init__.py自动加载包下内容

    在前面章节老猿介绍了包下模块及子包的加载的各种方式,并说明包的加载首先是自动加载包下的__init__.py文件.在<第10.6节 Python包的概念>中介绍了__init__.py文件 ...

  3. matplotlib 绘制多个图——两种方法

    import numpy as np import matplotlib.pyplot as plt #创建自变量数bai组du x= np.linspace(0,2*np.pi,500) #创建函数 ...

  4. PHash从0到1

    背景 在重复图识别领域,对于识别肉眼相同图片,PHash是很有用的,而且算法复杂度很低.它抓住了 " 人眼对于细节信息不是很敏感 " 的特性,利用DCT变换把高频信息去掉,再加上合 ...

  5. 沪苏浙皖共同打造区块链数字经济发展高地,Panda Global表示区块链真的来了!

    近日,在长三角一体化发展重大合作事项签约仪式上,沪苏浙皖经信部门共同签约,推进长三角区块链数字经济一体化发展,共同打造数字经济发展高地.从此次签约活动也能看出来,区块链数字现金的发展已经得到了认可,早 ...

  6. Jmeter(1)下载和安装

    一.Jmeter工具安装 1.jmeter安装包下载地址:http://jmeter.apache.org/,下载Binaries包,使用jmeter需要先安装jdk 2.解压后打开/bin目录下的j ...

  7. Electron安装打包指南

    当前环境Debian Linux-Deepin 安装Node 直接下载 命令下载 下载 wget https://nodejs.org/dist/v14.15.1/node-v14.15.1-linu ...

  8. Linux下yum下载依赖包

    先安装依赖包yum-plugin-downloadonly [root@node1 ~]# yum install yum-plugin-downloadonly 方法一: [root@node1 ~ ...

  9. idea的下载与安装

    1.下载idea.到idea的官网选择你需要下载的,你最喜欢的版本https://www.jetbrains.com/idea/download/ 2.下载jdk.进入Oracle官网,鼠标指在Dow ...

  10. 来感受Linux命令行的“真香定律”

    Shell看起来只是一个黑黑的命令框,刚开始接触会觉得很丑,毕竟与Win/Mac的华丽界面比起来,命令行终端直接可以丑拒了.但是,实际上它的功能要强大得多,毕竟Linux一开始就是广泛应用于服务器,通 ...