A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 鱻鱼会飞 初级黑马   /  2018-12-15 13:11  /  600 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

继承:
    继承的主要功能就是实现类的共性的抽取
特点:
    1.子类拥有父类的所有可继承的内容
    2.子类出了可以继承父类的内容之外 还可以有自己的专属的内容
   
定义的格式:
    父类的定义:
         就是是一个普通的类 不需要做特殊的操作
   
    子类的定义:
        
     public  class 类名  extends 父类{}
     
  在子父类关系中成员变量的访问特点:
    1.创建父类 只会调用自己的内容 和子类没有任何关系
    2.子类在访问成员变量的时候 如果自己有 则优先访问自己的成员变量 如果自己没则向上查找父类的成员变量 如果父类也没有则会编译报错
   
    通过方法访问成员变量 会优先使用的是方法所在的类的成员变量
   
  三种变量的表述形式
     局部变量           不做特殊的标记
     本类的成员变量      this.成员变量
     父类的成员变量      super.成员变量 //本类是子类 在子类中得到父类的成员变量
     
  在继承中成员方法的访问情况:
   子类对象会优先调用自己的方法 如果自己没有 会向上查找(指的是向父类里面进行查询) 如果父类有 执行父类中的方法 如果父类没有则会编译报错
   
方法的覆盖重写:
      1.子类重写父类的方法 方法名和参数必须都是一致的 建议使用 @Override (注解 annotation)如果不符合方法覆盖重写 会编译报错
   2.子类重写父类的方法 返回值要求 子类返回值类型的范围小于或者等于父类返回值类型的范围
   3.子类重写父类的方法  修饰符要求子类的修饰符的范围大于或者等于父类的修饰符的范围
      修饰符的范围大小的顺序  public > protected > 默认(什么都不写)> private
  
  
  super的三种用法
   1.可以访问父类的成员变量
   2.可以访问父类的成员方法
   2.可以访问父类的构造方法
   
  this 关键字是用来访问本类内容
   1. 在本类的成员方法中,访问本类的成员变量。
   2. 在本类的成员方法中,访问本类的另一个成员方法。
   3. 在本类的构造方法中,访问本类的另一个构造方法
     注意:this(参数...);必须是在第一个位置   super和this两种构造调用,不能同时使用。
   
  
  继承的3个特点:
        1.java里面  类是单继承的  接口是可以多继承的
     2.类是可以多级继承(多层继承)
     3.一个父类可以有多个子类
   
   
        抽象方法:
      public abstract 返回值类型  方法名(参数列表...);
  抽象类:
            public abstract class 类名{}
      
         注意点:  
              1.抽象方法所在的类必须得是抽象类 抽象类中不一定有抽象方法
              2.抽象类里面是有构造方法 构造方法是给子类对象进行初始化 使用的
              3.抽象类不能创建对象;
              4.子类必须得覆盖重写父类里面的抽象方法或者是该类也是抽象类
接口:
     接口就是公共的规范标准Interface   protocol(协议)
  定义格式:
    public interface Demo{   
     接口内容 ;  
    }
   接口内容:
      java7:
     1.常量
       格式:
       [public][static][final] 数据类型 变量名 = 数据值;
   
    注意点:
       1.[public][static][final]都是可以选择性省略 要求只要是在接口里面声明的变量 必须得用这三个关键字进行修饰
       2.必须对接口中定义的变量进程赋值操作(即初始化操作)
       3.软性要求 代码规范 接口里面定义的变量(常量)变量名字要求全部大写 每个单词之间使用下划线连接
      
     
     2.抽象方法
          public abstract 返回值类型 方法名(参数列表);
         注意:[public] [abstract]可以全部省略 也可以选择性的省略任意一个
   java8:
     3.默认方法
      主要功能 就是用来解决接口升级的一个问题
   格式:
        [public] default 返回值类型 方法名(参数列表){
      方法体;
     }
     
     默认方法 只能在接口中定义 别的地方不能定义
     默认方法 调用的时候和成员方法的调用方式一致
   
   
     4.静态方法
        定义格式:
        public static void show(){
      方法体;
     }
       静态方法是不能被重写的
    使用方式:
       不能使用实现类创建的对象调用
    直接使用接口名.静态方法(参数列表)
     
     
   java9:
     5.私有方法
      定义的格式:
       跟普通的方法相比的话唯一不一样的地方就是修饰符是private 其他的内容都一样
     普通的私有方法:
          private 返回值类型 方法名(参数列表){
        方法体;
       }
     普通静态的私有方法
        private static 返回值类型 方法名(参数列表){
         方法体;
        }
    功能:
        private修饰的方法只能在本类中使用
     可以对本类中重复的内容进行抽取
     
     
     
     
   接口的基本使用:
      1.接口不能直接用来创建对象使用
   2.需要创建一个实现类 实现 implements 接口名 实现里面的抽象方法
   3.使用实现类创建对象 使用对象调用方法
   注意:实现类必须得覆盖重写接口中的所有的抽象方法 除非该类也是抽象类
/*
在Java 9+版本中,接口的内容可以有:
1. 成员变量其实是常量,格式:
[public] [static] [final] 数据类型 常量名称 = 数据值;
注意:
  常量必须进行赋值,而且一旦赋值不能改变。
  常量名称完全大写,用下划线进行分隔。
2. 接口中最重要的就是抽象方法,格式:
[public] [abstract] 返回值类型 方法名称(参数列表);
注意:实现类必须覆盖重写接口所有的抽象方法,除非实现类是抽象类。
3. 从Java 8开始,接口里允许定义默认方法,格式:
[public] default 返回值类型 方法名称(参数列表) { 方法体 }
注意:默认方法也可以被覆盖重写
4. 从Java 8开始,接口里允许定义静态方法,格式:
[public] static 返回值类型 方法名称(参数列表) { 方法体 }
注意:应该通过接口名称进行调用,不能通过实现类对象调用接口静态方法
5. 从Java 9开始,接口里允许定义私有方法,格式:
普通私有方法:private 返回值类型 方法名称(参数列表) { 方法体 }
静态私有方法:private static 返回值类型 方法名称(参数列表) { 方法体 }
注意:private的方法只有接口自己才能调用,不能被实现类或别人使用。
*/   
   
   


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马