美文网首页
Java——day08

Java——day08

作者: 王小宣 | 来源:发表于2016-11-17 11:39 被阅读0次

    类的继承、内部类

    类的继承

    继承:面对对象设计的特征之一

    继承的特点:
    1. 子类继承父类,子类只能有一个父类,父类可以有多个子类
    2. 子类继承了父类的除私有的成员属性和方法外的所有属性和方法(构造方法不包括在内)
    3. 子类会默认调用父类的无参构造器
    4. 子类只能有一个父类,父类可以有一个父类(A继承B,B继承C)
    继承的优点:

    继承有利于代码的复用,通过继承可以更有效地组织程序结构,并充分利用已有的类来完成复杂的任务,减少了代码冗余和出错的几率。

    封装:隐藏实现功能的过程,提供实现功能的接口;
    多态:对象在不同情况下具有不同表现的能力;

    方法的重写:必须是子类继承父类,子类重写父类的方法
    方法名、返回值、参数列表、权限修饰符都要一致,修饰符、方法体可以不一致。

    变量的隐藏:子类与父类的成员变量名相同,局部变量与成员变量名相同,会产生变量隐藏。

    抽象类

    抽象:不同角色站在不同角度看世界
    抽象类:被关键字abstract修饰的类
    当类中的某一个方法不能实现功能,就定义为抽象类
    抽象方法:只有方法声明,没有方法体
    抽象类中有抽象方法,也可以有非抽象方法;有抽象方法的类必须是抽象类

    抽象类与普通类的不同:

    • 抽象类有抽象方法,普通类没有;
    • 抽象类不能实例化;
    • private、final、static、构造方法不能声明为抽象方法

    接口

    接口是一个特殊的抽象类,它只包含有常量和抽象方法,没有变量和方法实现。

    [public] interface 接口名[extends 父接口列表]{
        成员常量;//默认是public static final修饰的
        成员方法;//默认是abstract修饰的
     }
    

    注意:

    • 定义接口是用interface,定义类用class;
    • 所有成员常量默认是public static final修饰过的;
    • 所有成员方法都是abstract修饰过的;
    • 实现使用implements;
    • 接口是多实现,类是单继承;
    • 普通类实现接口必须实现接口里面所有的方法,抽象类可以有抽象方法,实现接口可以实现里面的方法,也可以不实现;

    抽象类与接口的不同:

    1. 抽象类是一个类,类是继承,接口是实现;
    2. 抽象类是使用class定义,接口使用interface定义
    3. 接口只有静态的常量,抽象类有成员变量;
    4. 接口只有抽象方法,抽象类可以有非抽象方法;
    5. 抽象类是单继承,接口是多实现;
    6. 抽象类有构造方法,接口没有;

    内部类、匿名类和最终类

    内部类:指被嵌套在另一类中或者是方法中的类;

    1. 成员内部类:定义在成员位置的类
    • 可以在非静态的方法中创建对象;
    • 可以在本类中创建非静态的成员变量对象;
    • 不能在本类以外创建对象;
    1. 静态内部类:static修饰的成员内部类
    • 可以在本类成员方法中创建对象
    • 可以在本类以外创建对象;
    • 可以创建静态的成员变量对象;
    1. 方法内部类:定义在成员方法里面;
    • 作用域:只在本方法中调用,出了这个方法就没法用;
    • 方法内部类不能是静态内部类;

    匿名类:匿名对象;

    最终类:被final修饰的类,不能被继承;

    相关文章

      网友评论

          本文标题:Java——day08

          本文链接:https://www.haomeiwen.com/subject/gexrpttx.html