继承

含义:在面向对象编程中,可以通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类

优点:1)代码的重用性;2)子类扩展父类的属性和方法;3)父类的属性和方法可用于子类;4)设计应用程序变得更加简单

继承的实现:

  关键字extends:继承其他类,可以继承public,protected

  子类继承父类,父类派生子类

  下面是用于声明Salary类是Employee类的子类:

public class Salary extends Employee

Object类(基类/超类)是所有类的父类,Object类中的方法被每个对象继承

 方法重写:

  遵循规则:1)子类的方法返回值的类型、方法名和形参列表,必须和父类中的是相同的

       2)访问修饰符不能比父类更严格

       3)子类中重写的异常不能抛出比父类更多的异常

  equals()方法:用于判断两个对象是否相等

super关键字:

  作用:调用父类中重写的方法

  注意:调父类构造器是第一句可执行语句;默认情况下子类会调用父类的无参构造器;做子类构造器初始化要先做父类构造器初始化

  格式:子类中调父类构造方法(super.方法名();)           调用父类中的构造器时(super(返回值1,返回值2...);)

final关键字:创建符号常量

  1)修饰类:不能被继承

   2)修饰方法:最终方法不能被重写

   3)修饰变量:变量值不能被修改

 类的高级概念

访问修饰符:

  1)公开访问级别:public (可以被任何其他对象访问)

   2)受保护级别:protected(可以被同一包中的类或者其他包的子类都可以访问)

   3)默认访问级别:没有修饰符(可以被同一包中的其他类访问)

   4)私有访问级别:private(只有类本身可以调用)

封装:

  是使类中的成员变量都是private,从而隐藏了类中的成员变量,确保数据的安全性

  封装后:get(只读)命名访问器方法,set(只写)修改器方法

  格式:set+属性名(首字大写)返回值为void;get+属性名(首字大写)返回值为自己想要的类型

  优点:1)类的成员变量可以成为只读或只写的

     2)类可以对存储在其成员变量中的内容有一个整体的控制

     3)类的用户可以不需要知道类是如何储存数据的

 静态初始化块:

  static{      {

    //语句                  //非静态

  }         }

  实例初始化块,在类的对象每次实例化时执行一次,在构造器之前执行

  执行顺序:1)子类中相应的构造器被调用

       2)执行对super的调用,控制流程跳转回子类构造器

       3)父类构造器执行完,控制流程跳转回子类构造器

       4)在该子类构造器中的super()后面的任何语句执行前,实例化初始化块执行

       5)执行子类构造器中super()后面的语句

内部类:

  静态内部类:

class Outer{
static class Inner{
} }

成员内部类:

class Outer{
class Inner{
}
}

局部内部类:

void f(){
class Inner{
void g(){
}
}
}

匿名内部类:
  new 类或者接口的名字(){

    //匿名内部类的主体

  }

多态和抽象

多态:

  含义:不同情形下的多种状态

  分类:静态多态(方法重载);动态多态(在运行中系统才能确定方法所指对象)

  步骤:1)编写父类派生子类

     2)子类当中重写父类方法

     3)使用多态(用父类数据类型引用子类对象)

     4)调用子类重写方法实现

  instanceof关键字:用于判断运行时对象的正真类型(引用  instanceof  类名)

抽象

  abstract关键字:

          放于class之前(抽象类),不能实例化父类对象,需要被继承后才能实现

          抽象方法:只有方法签名,没有方法主体;类也必须声明为抽象类;任何子类必须重写抽象方法,除非子类本身也是抽象

接口

  接口与类的不同:不能被实例化;不包含任何构造器;所有方法都是抽象的;不能包含实例成员变量;不能被一个类继承,只能被一个类实现;能够继承多个接口

接口声明

  关键字:interface

  格式:

public interface 接口名{
//任意数量的final,static成员变量
//任意数量的方法声明
}

  接口性质:1)接口默认是抽象的;2)接口中的每一个方法默认也是抽象的;3)默认访问级别是public

接口实现

    关键字:implements

 格式:public class 类名 extends 父类名 implements 接口名

  接口与接口之间可以多重继承,只能继承一个父类

  使用接口原则:1)使用接口解决多继承

         2)为外部类添加功能

         3)以面向对象角度考虑,将一个类与自身的特征和行为依赖于外部的可选的特征和行为分离,让类尽可能单纯

  接口优点:将设计和实现相分离,对外(调用者)隐藏实现(而通常调用者也不需要关心实现);面向接口编程是oop的核心

接口继承

  定义一个HockeyListener接口继承SportsListener接口:

public interface HockeyListener extends SportsListener{
//实现接口中的所有方法
}

  定义一个SportsListener类实现HockeyListener接口:

public class SportsListener implements HockeyListener {
//也需实现六个方法
}

  继承多个接口:

public interfasce HockeyListener extends SportListener,EventListener{
//需要实现三个接口中的方法
}

接口继承SportsListener和EventListener两个父接口

  

Java中关于继承、类、多态、接口的知识点的更多相关文章

  1. java中的继承 和多态。

    package com.aaa.zxf.ajax.test; /** *一. java 中的继承和多态. * * 继承的特性? * 1.实现继承的方式 * A 如何建立继承关系(一个类继承于 另一个类 ...

  2. Java中的实体类--Serializable接口、transient 关键字

    在java中,实体类是一个非常重要的概念,我们可以在实体类中封装对象.设置其属性和方法等.关于实体类,也经常涉及到适配器模式.装饰者模式等设计模式.那么在实际代码开发中,关于实体类的注意事项有哪些呢? ...

  3. 简谈java 中的 继承和多态

    继承(extends) : 1:object 是所有类的父(基)类. 2:子类继承父类所有的内容除了(private修饰的和构造方法). 3:子类在手动创建构造方法时,必须调用父类构造方法. 4:在J ...

  4. Java中的继承抽象类和接口

    一.总结 1.使用extends关键字继承,eg: class Student extends Persion { ...}; 2.Java编程规范中类的首字母大写,方法的首字母小写单词首字母代谢,e ...

  5. 2017.10.10 java中的继承与多态(重载与重写的区别)

    1. 类的继承 继承是面向对象编程技术的主要特征之一,也是实现软件复用的重要手段,使用继承特性子类(subclass) 可以继承父类(superclass)中private方法和属性,继承的目的是使程 ...

  6. java中带继承类的加载顺序详解及实战

    一.背景: 在面试中,在java基础方面,类的加载顺序经常被问及,很多时候我们是搞不清楚到底类的加载顺序是怎么样的,那么今天我们就来看看带有继承的类的加载顺序到底是怎么一回事?在此记下也方便以后复习巩 ...

  7. Java中的继承和多态

    1.  什么是继承,继承的特点? 子类继承父类的特征和行为,使得子类具有父类的各种属性和方法.或子类从父类继承方法,使得子类具有父类相同的行为. 特点:在继承关系中,父类更通用.子类更具体.父类具有更 ...

  8. 【Java学习笔记之十六】浅谈Java中的继承与多态

    1.  什么是继承,继承的特点? 子类继承父类的特征和行为,使得子类具有父类的各种属性和方法.或子类从父类继承方法,使得子类具有父类相同的行为. 特点:在继承关系中,父类更通用.子类更具体.父类具有更 ...

  9. Java学习笔记--继承和多态(中)

    1.通过继承来开发超类(superclass) 2.使用super 关键词唤起超类的构造方法 3.在超类中覆盖方法 4.区分override和overload 5.在Object类中探索toStrin ...

  10. Java中的继承、封装、多态的理解

    Java中的继承.封装.多态 继承的理解: 1.继承是面向对象的三大特征之一,也是实现代码复用的重要手段.Java的继承具有单继承的特点,每个子类只有一个直接父类. 2.Java的继承通过extend ...

随机推荐

  1. 2015最新iherb海淘攻略-图文入门教程

    IHerb是美国最热门的海淘海购网站之中的一个,适合不爱担心,怕麻烦的朋友入门海淘,由于它有中文页面,可直邮中国,上千个母婴用品.化妆品.保健品品牌,最重要的是!首次下单,价值$40及以上的订单会马上 ...

  2. HDU 1518 Square 搜索

    Problem Description Given a set of sticks of various lengths, is it possible to join them end-to-end ...

  3. MMTool制作Ozmosis引导BIOS完美引导OS X系统

    Ozmosis引导是德国黑苹果爱好者制作的一个引导程序,目前仍处于测试版,有了它,你可以不用再使用四叶草.变色龙之类引导工具,相对而言它更象白苹果.Ozmosis是基于AMI公司bios的硬件引导驱动 ...

  4. FireFox VS Chrome 之 调试篇

    一个完美的调试工具,FireBug! 精确跟踪每一步.仅仅要按下图所看到的,选择"脚本",然后在下方选择脚本所在的文件就可以对该文本的运行进行断点跟踪. 而且仅当一个线程运行结束后 ...

  5. HDU 2008 数字统计

    号码值统计 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  6. 职业选择測试(A/B卷)

    不同性格的人适合从事不同的职业.职业选择对于每一个人都是很重要的事情.假设能选一个既可以发挥潜能又有兴趣的工作,会使整个团队的效率逐倍增长.想了解你更适合什么职业吗?一起来測试一下吧.本套測试分为A卷 ...

  7. JavaScript之三:jQuery插件开发(一)

    在早期的开发中,正如前面闭包中所提到的那样,人们一开始并没有意识到要开发出插件这么个玩意儿,都是遇到啥写啥.在长期的工作中,人们发现很多代码是重复的,写了一遍又一遍,以登录页面为例,每写一次都需要重新 ...

  8. quick-cocos2d-x教程8:程序框架内lib文件夹分析

    lib文件夹是如今全部文件夹中最复杂的,包括了整个运行所需的库文件.我们简单看下,在开发初期,不须要深入到这个库里去研究 cocos2d-x 文件夹就是c++版的原始文件 framework_prec ...

  9. 定义你自己ViewGroup

    尊重原创:http://blog.csdn.net/yuanzeyao/article/details/40264433 好久都没有写文章了,如今利用周末的时间对一些知识进行总结.便于加深理解,今天我 ...

  10. 阿里巴巴2014研发project师实习生面试经历

    java研发project师的初面是在上周三进行的,终于结果到了晚上才出,而没有通过的则是一结束网上就更新了状态.之后阿里通知这周三,也就是今天进行二面. 凑巧的是今早被舍友吵醒,中午那个困啊,但没时 ...