zoukankan      html  css  js  c++  java
  • 06.继承和多态

    一.类的继承

    类继承的实现

    Java语言具有单继承的特点,不支持多继承,每个子类只有一个直接父类。

    子类会继承父类中所有非private修饰的属性和方法,且不能获得父类的构造器。

    class subClassName extends superClassName[implements interfaceNameList]{
    	//类体
    }
    extends//继承关键字
    

    方法的重写

    方法的重写是指在子类中使用和父类完全同名的方法,且方法的参数(个数,类型,排列顺序)和返回类型完全一样。

    重写方法时,子类的访问控制权限不能低于父类的访问控制权限。

    super关键字

    使用super关键字可以访问被子类隐藏或重写成员,也可以访问未被隐藏的成员。

    如果没有显式的使用super关键字调用父类的构造方法,系统会隐含调用super这个方法。

    当在子类构造器中调用父类构造器时,super关键字应该作为子类构造器方法体的第一个执行语句。

    • 调用父类中被重写的方法

    super.方法名([参数表]);
    
    • 访问父类中被重写的方法

    super.成员变量名;
    
    • 调用父类的构造器

    super([参数表]);
    

    this关键字

    除了默认指代当前实例对象,this还有其他用法。

    如果一个类中定义了多个构造方法,可以使用this在某一个构造方法中引用其他构造方法。

    二.抽象类和方法

    抽象类

    抽象类是指只能被继承而不能生成具体对象的类。

    抽象类中可以包含抽象方法,也可以不包含抽象方法。但只要一个类包含一个抽象方法,这个类就是抽象的。

    抽象类只能作为父类使用,由它派生的子类必须实现抽象类的所有抽象方方法。

    abstract class className{
    	//属性
    	//抽象方法
    	[访问控制修饰符]abstract 返回值类型 方法名([形参列表]);
    	//非抽象方法
    	[访问修饰控制符]返回值类型 方法名([形参列表]){
    	
    	}
    }
    

    抽象方法

    抽象方法仅仅为所有子类定义一个统一的接口,具体实现通过派生类对抽象方法的覆盖来实现。

    抽象方法只有声明,没有方法体,以";"结尾。

    构造方法,静态方法,私有方法,final方法不能被声明为抽象方法。

    abstract datatype AbstractMethodName(parameterList);
    

    三.final修饰符

    终极类

    被final修饰的类,终极类不能拥有子类。

    终极方法

    被final修饰的方法,终极方法不能被子类重写。

    终极变量

    final修饰的变量,终极变量取值在整个程序中不能改变,即常量。

    四.接口

    接口是一种特殊的抽象类。

    通过接口可以实现类间多重继承的功能。

    与类的继承区分,对接口的继承称为实现。

    接口中不能定义变量,只能定义final修饰的常量。

    接口是一个抽象类,接口中的方法都是抽象方法。

    接口的声明

    interface关键字

    [public] interface interfaceName[extends 父接口名列表]{
        //数据成员声明
        [public][static]final datatype variableName = Value;
        //抽象方法声明
        [public][abstract][native]return DataType methodName(parametersList);
    }
    

    接口的实现

    implements关键字

    public class Student implement people{
    
    }
    

    五.包

    包是一种松散的类的集合,可以将各种类文件组织起来。类似于其他语言的命名空间,当一个类需要在多个地方重用时,应该把它放在包中。

    创建包

    缺省时,系统为每一个.Java源文件创建一个无名包,同个Java文件每个类都属于同一个包。

    创建包的文件应该放在Java源文件的的第一个语句。

    常常将包放在JAR文件中,一个JAR文件往往会包含多个包。

    package packageName;
    //多级子目录
    package packageName1,packageName2,packageName3;
    

    引用包中的类

    • 包名.类名直接使用类

    • import导入包

    //加载包中指定的类
    import 包名.类名;
    //加载包中的所有类
    import 包名.*;
    
    • 同一个包或者缺省无名包将自动引用

    • Java.lang包中的类将会自动导入

  • 相关阅读:
    ie7不支持inline-block
    使padding的值不影响整体块的大小
    网页在不同屏幕下的自适应
    CSS:line-height:行高
    用css制作三角形,理解
    js之setTimeOut();
    jQuery:has()和jQuery:contains()区别
    前端开发之jQuary--可见筛选选择器
    python基础知识--10Lambda匿名函数、三元表达式及map、reduce、filter
    python基础知识--9迭代器生成器闭包与装饰器
  • 原文地址:https://www.cnblogs.com/1911087165zzx/p/13121469.html
Copyright © 2011-2022 走看看