概述

  Java和C#都是面向对象语言,面向对象编程是目前高级语言习惯的编程模式,与C++编写过程编程而言,面向对象使用起来高效、灵活;面向对象的三个特征:封装、继承和多态。

Java面向对象

1、类封装:
  在 Java 中通过 extends 关键字可以申明一个类是从另外一个类继承而来的.class 子类 extends 父类{}.implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔)。

2、super 与 this :
  super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。this关键字:指向自己的引用。

3、final 关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写。声明final的方法不能被重写。

4、构造器:
  子类不能继承父类的构造器(构造方法或者构造函数),但是父类的构造器带有参数的,则必须在子类的构造器中显式地通过super关键字调用父类的构造器并配以适当的参数列表。
  如果父类有无参构造器,则在子类的构造器中用super调用父类构造器不是必须的,如果没有使用super关键字,系统会自动调用父类的无参构造器。

5、方法重写和重载;
  不像C# 使用OverWrite和virtual 之前调用转化;子类调用父类同名方法,需要使用super.方法名称

6、Java多态;
  多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作。
  多态的必要条件:继承、重写、父类引用指向子类对象;

  多态的实现方式:重写、接口、抽象类和抽象方法;

7、抽象类和抽象方法:

  抽象类和抽象方法都是使用abstract修饰。
  

public abstract class Employee
{ public abstract double computePay();
}

抽象类总结规定
  1. 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。
  2. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
  3. 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。
  4. 构造方法,类方法(用static修饰的方法)不能声明为抽象方法。
  5. 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。
8、接口:

  接口通过implements实现接口继承。一个类可以继承多个接口。一个接口可以继承多个接口。一个类只可以继承一个父类。

标记接口:
  最常用的继承接口是没有包含任何方法的接口。
  标识接口是没有任何方法和属性的接口.它仅仅表明它的类属于一个特定的类型,供其他代码来测试允许做一些事情。
  标识接口作用:简单形象的说就是给某个对象打个标(盖个戳),使对象拥有某个或某些特权。

  标记接口主要用于以下两种目的:
    建立一个公共的父接口、向一个类添加数据类型
9、包:
  Java 提供了包机制,用于区别类名的命名空间;
  包的作用
  1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
  2、如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
  3、包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
  import 关键字,导入该包;生成java结尾源文件,class生成调用问题;类似dll和.class文件一样;

10、补充知识

  wind系统下修改和查看JavaClassPath的方式:cmd--set calsspath

转载于:https://www.cnblogs.com/xibei666/p/6502857.html

Java基础知识➣面向对象(八)相关推荐

  1. java基础知识——面向对象基本概念

    文章目录 Java基本概念 源文件声明规则 Java包 Import语句 继承类型 继承的特性 继承关键字 super 与 this 关键字 构造器 方法的重写规则 重载(Overload) 重写与重 ...

  2. Java基础知识(二) 面向对象的技术

    Java基础知识 面向对象的技术 1. 面向对象与面向过程有什么区别 2. 面向对象有哪些特征 3. 什么是继承 4. 组合和继承的区别 5. 多态的实现机制 6. 重载和覆盖有什么区别 7. 抽象类 ...

  3. Android开发必须掌握的Java基础知识和常见面试题

    Java基础知识 面向对象特征 基本数据类型及装箱拆箱机制 String StringBuffer StringBuild final finally finalize 区别 static关键字 重写 ...

  4. JAVA基础知识(四)面向对象基础

    文章目录 JAVA基础知识(四)面向对象基础 1. 类 2. 访问权限修饰符 3. `static`修饰符 3.1 静态代码块 4. `new`一个对象 5. 方法 5.1 `this` 5.2 方法 ...

  5. Java基础知识(八) Java平台与内存管理

    Java基础知识 1. 为什么说Java是平台独立性语言 2. Java 平台与此他语言平台有哪些区别 3. JVM 加载 class 文件的原理机制是什么 4. 什么是GC 5. Java 是否存在 ...

  6. Java基础知识复习(一)

    Java基础知识复习(一) 目录 Java简介 命名规则 八种基本的数据类型 字面量 类型转换 变量的形态 逻辑运算符 位运算 移位运算 习题知识点 目录 Java简介 Java是由Sun公司在199 ...

  7. java(5)---Java基础知识大全

    Java基础知识大全 一.基础知识:  1.JVM.JRE和JDK的区别:  JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性.  java语言是跨平 ...

  8. Java基础知识(二)(Object类的常用方法、日期时间类、System类、StringBuilder类、包装类、Collection集合、Iterator迭代器、泛型、list集Set接口...)

    文章目录 Java基础知识(二) 1.Object类的常用方法 1.1 toString方法 1.2 equals方法 1.3 Objects类 2.日期时间类 2.1 Date类 2.2 DateF ...

  9. 自用的快速复习Java基础知识,不适用于每一个人

    自用的快速复习java基础知识,不适用于每一个人 问题背景 1. 类定义出来的变量称为**对象** [IDEA安装](https://www.jb51.net/article/193853.htm) ...

最新文章

  1. 某程序员哀叹工资低:二本计算机毕业,四年前端开发,年包才四十万!薪资真的和学历挂钩吗?...
  2. loadClass和forName 的区别
  3. tensorflow中GPU的设置
  4. iOS开发那些事-Git在Xcode中的配置与使用
  5. 说你又不听,听你又不懂,懂你又不做,做你又做错,错你又不认,认你又不改,改又不服,不服也不说
  6. 小程序分享如何自定义封面?
  7. 召回率(Recall),精确率(Precision),交除并(Intersection-over-Union(IoU)
  8. ​CSDN疯狂盲盒来啦!iPhone 12、机械键盘、Switch等你来拿!
  9. 谷歌推Tacotron 2,搞定绕口令,效果优于WaveNet
  10. UWA TIPS:让你的项目更懂你!
  11. SharePoint Designer 2010中的外部内容类型-SQL Server
  12. 第七章软件项目资源管理
  13. 苹果手机长截屏_发现一个手机必备软件
  14. airtest 多设备同时运行_AirTest多设备批量运行测试用例并自动生成测试报告
  15. HACKTHEBOX——Starting Point Tier0
  16. 圣光照耀联盟—PostgreSQL临时表的创建与使用过程
  17. 全基因组选择中准确性的影响因素
  18. windows下gfortran编译error:Note: The following floating-point exceptions are signalling: IEEE_UNDERFLOW
  19. 4.5.2 地址变换机构 4.5.3  访问内存的有效时间
  20. 北航软件能力培养启发和下一步工作

热门文章

  1. GNU C 中的零长数组
  2. Netty自定义协议
  3. linux mount挂载设备(u盘,光盘,iso等 )使用说明
  4. 记录一次socket编程:String的trim函数
  5. 一篇不一样的docker原理解析
  6. Python之区块链简单记账本实现
  7. android surfaceflinger研究----SurfaceFlinger loop
  8. jwt如何防止token被窃取_JWT令牌
  9. JZOJ 3819. 【NOI2015模拟9.9】取石子
  10. 如何判断离散数组 是递增趋势_如何用切线技术判断市场趋势?