tnblog
首页
视频
资源
登录

Java学习 - 继承与多态

6425人阅读 2019/4/30 11:02 总访问:169832 评论:0 收藏:0 手机
分类: JAVA

1.继承

2.多态

3.构造方法

4.重载

5.重写

6.super与this的区别

7.static,final,abstract的用法

8.接口


一 什么是继承

如: 儿子继承父亲的财产

             继承就是由一个类,派生出一个个类,派生出的类具有上一级类的属性和功能,这种关系叫继承

             为什么要使用继承?   为了扩展子类的功能,简化代码开发

                1 提高编程的效率

                2 减少代码的重复使用

                3 提高代码的可读性和可维护性


语法:关键字 extends

  1. class 子类名 extends 父类名
  2. {
  3. 属性;
  4. 行为:
  5. /*
  6. 它只继承了父类中 非私有属性和方法。
  7. */
  8. }

特点规则:java只支持单继承,一个子类只能有一个父类

  1. 例:A extends B,B extends C;


    不可以写

  1.  A extends B,C; A extends B extends C;
  2.  
  3.  继承的具体使用:
  4.      子类可以继承父类中的一般属性和方法,但是除private以外
  5.      子类可以再继承关系中拥有自己的属性和方法
  6.      
  7.  继承的特征:
  8.      1 必须有extends关键字
  9.      2 子类在调用本类的构造方法时,必须先调用父类的构造方法
  10.      3 子类默认父类的隐式构造,如果父类没有,只有有参构造,则必须调用父类的构造方法
  11.      4 调用父类中属性或方法必须使用super关键字
  12.  分析:会继承父亲的所有事物吗?比如儿子会继承父亲的名字、相貌等吗

二 什么是多态

多态就是一般类中定义的属性和行为,被特殊类继承后,可以具有不同的数据类型或表现出不同的行为

继承的体现就是多态


三 什么是构造方法

概念: 方法名与类名相同,并且没有返回值(包括void)

作用: 

1 在创建对象的时候调用

2 给属性初始化(赋值)

特点:

1 如果不显示声明一个构造方法,系统或自动生成一个

2 如果显示声明一个有参构造方法,那么系统将不会自动创建无参的构造方法


四 什么是重载 重载和重写体现了多态

在同一个类中,如果出现方法名相同,参数的类型,个数,顺序不同,就叫做重载。(同名不同参)

常见的,构造方法的重载。

   什么是重写

在子类中,如果出现了与父类中完全相同的方法(修饰符可以不同,但是子类的修饰权限必须大于等于父类的修饰权限),就是方法的重写

public > protected > default > private

注意:调用的始终都是重写之后的方法。


五 子类对象的产生过程

创建子类对象,一定先执行父类构造方法

super在子类构造方法中调用父类的有参数的构造方法


六 super的作用

1 在子类的构造方法中,第一行使用,默认调用父类无参数构造方法,也可以调用有参数的

super()  super(参数列表)

2 在子类中,使用super相当于父类的对象,可以调用父类中的所有非私有属性和方法。private除外


七 this的作用

1、在当前类中使用,相当于是当前类的对象,可以调用当前类的属性和方法,private除外

2、在当前类的构造方法中,第一行使用,可以调用当前类的构造方法。


八 static的作用

1 static关键字可以修饰变量和方法,修饰变量叫做 静态变量,修饰方法叫做静态方法。

2 没有被static修饰的方法和变量,实例变量和实例方法

注意:

1、被static修饰的变量和方法,属于类的,在内存中只分配一块存储空间,所有对象都共享此空间。所以被static修饰的方法和变量可以直接使用类名调用。

2、在静态方法中,只能使用静态变量和调用静态方法。

3、在静态方法中,不能使用this关键字


九 final的用法

final关键字可以修饰类,方法,变量

1 修饰变量,那么就是常量

  1. final float PI=3.14f;


2 修饰类,那么该类不能被继承

  1. final class Person
  2. {
  3. }
  4. //错误
  5. class Student extends Person
  6. {
  7. 报错
  8. }

3 修饰方法,那么该方法不能被重写。


十 abstract的用法

抽象类

对象是通过类进行描述的。 当一个类的信息不足以描述一个对象的时候,这个类就是抽象类。

    在程序中使用 abstract关键字修饰的类就是抽象类

语法:

  1. abstract class 类名
  2. {
  3. 属性;
  4. 行为;
  5. }


抽象方法

只有方法的声明,没有方法体

语法1:

     abstract 修饰符 返回值 方法名(参数列表);

语法2:

     修饰符 abstract 返回值 方法名(参数列表);

注意:

1 在抽象类中,可以有抽象方法。也可以没有

2 如果一个类中出现了抽象方法,那么这个类一定是抽象类。

3 抽象类不能直接创建对象,只能使用子类进行创建

4 子类继承了抽象类,那么必须重写父类中的所有抽象方法。除非子类本身也是抽象类。


十一 接口

提供一种标准和规范。供使用者调用。

在程序中,使用关键字 interface修饰的 就是接口,接口就是抽象方法和常量的集合。

语法:

  1. 修饰符 interface 接口名
  2. {
  3. 抽象方法;
  4. 常量(少用)
  5. }


注意:接口与 类的级别是相同的。

接口的规则:

1 接口可以实现多重继承

  1. interface 接口1 extends 接口2,接口3,接口4...
  2. {
  3. }

注意:1 接口的使用,只能通过类进行实现,语法格式:

  1. class 类名 implements 接口1,接口2,接口3、、、
  2. {
  3. // 类实现了接口,必须重写该接口中的所有抽象方法,除非当前类也是抽象类。
  4. }










评价

Java8 十大新特性详解

前言: Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级。在Java Code Geeks上已经有很多介绍Java 8新特...

如何评价Java11

JDK11作为LTS长期支持版本, 在今后几年会逐步像JDK8一样流行, 因为下一个LTS版本要等待3年后的JDK17了.从JDK11累积了JDK9,1...

Java中的堆和栈以及堆栈的区别

在正式内容开始之前要说明一点,我们经常所说的堆栈堆栈是堆和栈统称,堆是堆,栈是栈,合在一起统称堆栈;  1.栈(stack)...

JavaScript中的事件委托

什么是事件委托事件委托在JavaScript中是非常常见的,它主要用于对某个元素中的子元素的冒泡事件进行监听。JavaScript高级...

该用 Java 12 还是坚持 Java 11?

搭上火箭也追不上的 Java 更新速度,不少程序员们大呼,我可不可以坚持使用 Java 8?!但是对于已使用到 LTS 版本的 Java 1...

Javascript阻止scroll事件多次执行的思路及实现

//测试代码 window.onscroll=function(){ alert("haha"); }鼠标滑动之后一直点击提示框才可以,我想要的是鼠...

Java学习路线

第一部分:Java开发介绍1. DOS常用命令2. JVM、JRE、JDK之间的关系3. Java开发环境的搭建:安装JDK,配置环境变量4. Java入...

Java web学习路线

第二阶段:JavaWeb第一部分:HTML51. html概述2. html基本标签3. 图片标签4. 超链接标签5. 表格标签6. 无序列表标签7. 有序...

Java框架

第三阶段:Java框架第一部分:Maven1. Maven环境搭建2. Maven构建项目3. Maven本地仓库配置4. Maven中央仓库配置5. Maven基...

Java + 云数据

第四阶段:Java + 云数据第一部分:Linux版本1.Linux简介和安装2.Linux和Windows的区别3.Linux远程登录4.Linux常用命令5.Li...

JavaScript的事件分类

JavaScript的事件大致可以分为几类,了解这些事件分类将有助于理解和组织代码。1、依赖于设备的输入事件有些事件和特定输入...

配置Java环境

安装jdk 地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html这就不一一赘述了...

C与Java二进制编码转换,补码

在C#与Java接口对接时,需要将图片转化为二进制编码传输,这时候发现c#转换出来的编码的值是0~255的范围,而java方需要的是...

Java学习 - Java语言简介

java语言简介1.了解java产生的背景2.了解java体系结构和组成3.了解Java API文档的使用4.搭建java语言的开发环境(重点)5....

Java学习 - Java语言基础

Java语言基础1.Scanner的用法2.java的程序结构3.java的数据类型4.java的运算符和表达式5.程序流程控制6.数组一 Scanner的用...

Java学习 - 类和对象

1.了解面向对象和面向过程的区别 2.理解什么是类以及创建类的语法 3.理解什么是对象以及如何创建 4.掌握什么是封装一 面向...
sometimes ever,sometimes never
排名
21
文章
27
粉丝
11
评论
12
MySQL数据库基础
剑轩 : 大神教我学mysql!
MySQL概述与安装配置
剑轩 : PHP是目前最流行的 Web 开发语言
JAVA8 十大新特性详解
叼着奶瓶逛酒吧 : 文章写得真心不错,加油哈
Java学习 - Java语言基础
剑轩 : 每个小标题颜色加深一点会更好哦
Java学习 - Java语言简介
剑轩 : 请注意,java大神开讲了
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术
相思只在:丁香枝上,豆蔻梢头。