java 继承使用关键字extends   继承的作用:减少代码量,优化代码

继承的使用注意点:

1子类不能继承父类的私有变量

2.子类不能继承父类的构造方法

3.子类在调用自己的构造方法时 会默认调用父类的无参构造方法

4.私有方法不能被继承

5.子类不能够继承不在一个包中默认权限的成员变量

为什么会调用非类的构造方法:

子类在创建对象的时候初始化非类的对象

Super:关键字  指向非类对象的引用空间

Super关键字的作用:

1.         当子类和父类存在同名的成员变量是,可以通过super来调用父类的成员变量

2.         Super 可以调用父类的构造方法

Super 使用的注意事项:

  1. 用super调用父类的构造方法  ,必须是构造方法中的第一个语句
  2. Super只能出现在子类的方法和构造方法中
  3. Super和this不能同时调用构造方法

总结:

Super和this的区别:

  1. 代表的事物不一样:

This:所属方法调用者对象

Super:表示父类对象的引用空间

  1. 使用前提不一样:

Super:只能在继承的条件下才能使用

This:在非继承条件下也可以使用

  1. 调用构造方法:

Super:调用父类的构造方法

This:调用本类的构造方法

方法的重写:

父类的方法满足不了子类的实现,这时候就需要通过重写方法再实现父类的方法

方法重写使用注意事项:

  1. 方法重写时,必须存在继承关系
  2. 方法重写时,方法名和形式参数必须一致
  3. 方法重写时,子类 的权限修饰符需要大于或等于父类的权限修饰符
  4. 方法重写时,子类的异常类型要小于或等于父类的异常类型
  5. 方法重写时,子类的返回值类型必须小于或者等于父类的返回值类型

方法的重载却是:

方法名一样,参数列表的个数,类型,顺序是不一样的

Instanceof:实例类型  是关键字

使用方法:boolean res = s instanceof Person;  返回的是布尔值

1.Instanceof  用来判断某一个对象是否属于一个类

2.Instanceof  的使用前提 对象指定的类有继承关系或者实现关系

关键字:final(修饰符,最终)

Final关键字的使用:

  1. 如果用一个final关键字修饰一个基本数据变量,改变了就不能重新赋值,第一次的结果为最终结果
  2. 如果用fianl修饰引用数据类型变量,无法给引用数据类型变量重新赋值
  3. 如果final修饰一个方法,方法就不能被重新重写
  4. 如果final修饰一个类,类就不能够被继承

如何用fina表示常量

常量的格式:

Public final static 基本数据类型  变量名

抽象类:用关键字abstract

一个类如果被abstract修饰 那么这个类就叫抽象类

如果abstract修饰方法  那么这个方法就叫抽象方法

如果一个类继承了抽象类,必须要实现抽象类中的抽象方法

补充abstract不能够和那些关键字连用:

1.不能和private。

2.不能和static使用。

3.不能和final一起使用

Abstract关键字的使用:

1.         如果一个方法没有方法体,那么这个方法必须要用abstract来修饰

2.         如果一个类中有抽象方法,那么这个类必须用abstract类修饰 抽象的类

3.         如果一个非抽象的类,继承了这个抽象类,那么这个非抽象类必须重写抽象类中所有的抽象方法

4.         一个抽象类是可以有非抽象的方法

5.         一个类中是可以存在构造方法,作用是让子类能够初始化父类中的变量

6.         抽象类不能够创建对象

原因:如创建对象,对象就可以调用到抽象方法,因为抽象方法时没有方法体的  这样调用抽象方法是没有意义的

7.一个抽象类是可以不出现抽象方法的(即可以没有抽象方法)

Abstract 关键字的使用场景:

我们在描述一个事物的时候,发现这个事物确实存在某种行为,但是这种行为又不具体,那么这个时候就可以抽取这种行为,声明一个没有实现的行为,这种行为就叫做抽象行为,那么这个时候就要用到抽象类

接口定义模式:

用interface关键字表示接口

结构:

Interface 接口名{}

实现接口中的方法

Class 类名 implements 接口名1,接口名2……{

这里可以实现接口的方法

}

Java中是支持多实现  一个类可以实现多个接口

接口作用:

  1. 用来拓展功能
  2. 让程序解耦
  3. 定义约束

接口的使用注意事项

  1. 接口是一个特殊的类,可以定义属性和方法
  2. 属性是默认用final修饰的: public static final  实际上是一个常量
  3. 方法都是抽象的:abstract public
  4. 接口不能创建对象
  5. 接口 没有构造方法
  6. 接口是给类去实现的,非抽象类实现接口时,必须将接口中的方法都实现

java关键字extends(继承)、Supe(父类引用空间)、 This(方法调用者对象)、Instanceof(实例类型-判断对象是否属于某个类)、final(最终)、abstract(抽象) 、interface(接口)0的更多相关文章

  1. Java中的继承:父类和子类的关系

    一.父类引用指向子类对象时 1.若子类覆盖了某方法,则父类引用调用子类重新定义的新方法 2.若子类未覆盖某方法,则父类引用调用父类本身的旧方法 3.若子类覆盖了某属性,但父类引用仍调用父类本身的旧属性 ...

  2. JAVA 构造器, extends[继承], implements[实现], Interface[接口], reflect[反射], clone[克隆], final, static, abstrac

    记录一下: 构造器[构造函数]: 在java中如果用户编写类的时候没有提供构造函数,那么编译器会自动提供一个默认构造函数.它会把所有的实例字段设置为默认值:所有的数字变量初始化为0;所有的布尔变量设置 ...

  3. java设计模式--基础思想总结--父类引用操作对象

    看设计模式的相关书籍也有一段时间了,一开始其实是抱着作为java三大框架的基础知识储备来学习的,不过到后来,才发现,在设计模式的一些准则装饰下,java的面向对象威力才真正地体现出来,后面的将会陆续地 ...

  4. Java标识符和关键字(static,final,abstract,interface)

    本文的主要内容如下   1.标识符合关键字 2.Java中的关键字 3.static关键 字 4.static方法 5.静态代码块 6.static修饰符综述 7.final关键字 8.final修饰 ...

  5. python__基础 : 类的继承,调用父类的属性和方法

    1.继承,调用父类属性方法 在python里面,继承一个类只需要这样写: class Animal: def heshui(self): print('动物正在喝水') class Cat(Anima ...

  6. 面向对象、类与对象、成员与局部变量、封装、private、构造函数、this、static、extends、super、final、abstract、interface、多态、内部类、异常【5】

    若有不正之处,请多多谅解并欢迎批评指正,不甚感激. 请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing ...

  7. java怎么调用子类中父类被覆盖的方法

    public class b { { void show() { System.out.println("b"); } } public class c extends b { v ...

  8. JAVA篇<一> 继承extends(已转移到JAVA总结篇)

    前题:如果不经过指出继承,那么所有的类都继承了JAVA中的Object类. 正文: 继承的关键字是:extends,是所有面向对象语言的重要特性. 例public class TestExtends ...

  9. Java多态-如何理解父类引用指向子类对象

    java多态,如何理解父类引用指向子类对象 要理解多态性,首先要知道什么是“向上转型”. 我定义了一个子类Cat,它继承了Animal类,那么后者就是前者是父类.我可以通过   Cat c = new ...

随机推荐

  1. 通过维基API实现维基百科查询功能

    通过英文维基的免费API,可以实现对维基百科的搜索查询或者标题全文查询等,尝试了一下通过title实现全文查询,返回的结果是wikitext格式,暂时不知道该如何应用,所以仅实现了查询功能,可以返回最 ...

  2. Android源码——应用程序的消息处理机制

    Android应用程序在启动每个线程时,都会创建一个消息队列.线程的生命周期分为创建消息队列和进入消息循环两个阶段. 消息循环分为:发送消息和处理消息. Android系统主要通过MessageQue ...

  3. Swift-代理

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "Helvetica Neue"; color: #535b60; bac ...

  4. C语言产生标准正态分布或高斯分布随机数

    C语言 产生标准正态分布或高斯分布 随机数 产生正态分布或高斯分布的三种方法: 1. 运用中心极限定理(大数定理) #include #include #define NSUM 25 double g ...

  5. Eclipse启动Tomcat时server.xml和content.xml自动还原问题

    当我们在处理中文乱码或是配置数据源时,我们要修改Tomcat下的server.xml和content.xml文件. 但是当我们修改完后重启Tomcat服务器时发现xml文件又被还原了,修改无效果. 为 ...

  6. 拖动对象ondrag

    说明: 在进行拖放操作时,dataTransfer 对象用来保存被拖动的数据.它可以保存一项或多项数据.一种或者多种数据类型.dataTransfer对象有两个主要的方法:getData()方法和se ...

  7. 1.1、MyEclipse自定义注释

    一.修改进入路径: Window->Preference->Java->Code Style->Code Template->Comments 二:编辑自定义注释 文件  ...

  8. 隐式的bean发现与自动装配机制

    使用beans.xml文件进行bean的创建和注入通常是可行的,但在便利性上Spring提供了更简单的方法--自动装配 接下来我们假设一个场景:我有若干播放器(MediaPlayer{CD播放器/MP ...

  9. jcFeather For Maya 2012免费版

    jcFeather羽毛插件有Maya2012免费试用版. 免费版有正版的所有功能,可制作羽毛,可渲染,但是一个Maya场景文件只能有3个jcFeather 节点和3个jcPreFeather节点. j ...

  10. Linux快速上手

    1.Linux系统架构 内核(kernel) 内存管理(mm) Linux内存特性无论物理内存有多大,Linux 都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高Lin ...