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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© BugBuff 中级黑马   /  2016-3-27 00:06  /  465 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

多态:(polymorphic)
父类引用指向子类对象
成员变量:编译看左边(父类)运行看左边(父类)
成员方法:编译看左边(父类)运行看右边(子类).动态绑定
静态方法:编译看左边(父类)运行看左边(父类)
多态的弊端:父类引用不能使用子类中特有的成员变量或方法
多态的好处:a.提高代码的复用性(继承保证)
       b.提高代码的扩展性(由多态保证)
---------------------------------------------------------------
抽象:
abstract不能喝哪些关键字共存
abstract和static
  被abstract修饰的方法没有方法体
  被static修饰的可以用类名.调用,但是类名.抽象方法没用意义
abstract和final
  被abstract修饰的方法需要子类进行重写
  被final修饰的方法不能被重写
abstract和private
  被abstract修饰的方法需要子类进行重写
  被private修饰后对子类来说是不可见的
-------------------------------------------------------------
接口(interface)
成员变量:只能是常量并且是静态的并公共的
        默认修饰符:public static final
        建议自己手动给出
构造方法:接口没有构造方法
成员方法:只能有抽象方法
        默认修饰符:public abstract
        建议手动给出
接口与接口之间是继承关系,可以单继承也可以多继承

接口与抽象类的区别

成员属性:接口中只有常量没有变量
        抽象类中可以有常量也可以有变量

成员方法:接口中所有的方法都是抽象的
        抽象类中可以有抽象方法,也可以没有抽象方法

构造方法:接口中没有构造方法
        抽象类中有构造方法

继承:接口可以单继承也可以多继承
     抽象类只能可以单继承
--------------------------------------------------------------
内部类:

B:内部类访问特点
        * a:内部类可以直接访问外部类的成员,包括私有。
        * b:外部类要访问内部类的成员,必须创建对象。

局部内部类访问局部变量必须用final修饰
局部内部类在访问他所在方法中的局部变量必须用final修饰,为什么?
   因为当调用这个方法时,局部变量如果没有用final修饰,他的生命周期和方法的生命周期是一样的,
   当方法弹栈,这个局部变量也会消失,那么如果局部内部类对象还没有马上消失想用这个局部变量,就没有了,
   如果用final修饰会在类加载的时候进入常量池,即使方法弹栈,常量池的常量还在,可以继续使用;
   但是jdk1.8取消了这个事情,所以我认为是个bug

匿名内部类格式:
        new 类名或者接口名(){
                重写方法;
        }

非静态内部类:外部类名.内部类名 变量名 = new 外部类对象.new 内部类对象

静态内部类:外部类名.内部类名 变量名 = new 外部类名.内部类对象

局部内部类:外部类名 变量名 = new 外部类对象        变量名.内部类所在方法;
               
匿名内部类一般只重写一个方法时使用
.
匿名内部类不能向下转型,因为没有子类类名;       
--------------------------------------------------------
访问权限修饰符
      四种:private        私有          
          默认       
          protected        受保护的
          public        公有的
    同一包中:
        两个类之间有继承关系:默认 protected public 可以访问
        两个类之间没有继承关系:默认 protected public 可以访问
    不同包中:
        两个类之间有继承关系: protected public  可以访问
        两个类之间没有继承关系: pulic  可以访问
---------------------------------------------------------
包:
  定义包的格式
        package 包名;多级包用.分开
  定义包的注意事项
        package 语句必须是程序的第一条可执行的代码
        package 语句在一个java文件中只能有一个
        如果没有package,默认表示无包名
  如何编译运行带包的类
        javac编译的时候带上-d即可
        示例:javac -d . HelloWorld.java
        通过java命令执行
        示例:java 包名.HelloWorld
----------------------------------------------------------
* A:修饰符:
        * 权限修饰符:private,默认的,protected,public
        * 状态修饰符:static,final
        * 抽象修饰符:abstract
* B:类:
        * 权限修饰符:默认修饰符,public
        * 状态修饰符:final
        * 抽象修饰符:abstract
       
        * 用的最多的就是:public
       
* C:成员变量:
        * 权限修饰符:private,默认的,protected,public
        * 状态修饰符:static,final
       
        * 用的最多的就是:private
       
* D:构造方法:
        * 权限修饰符:private,默认的,protected,public
       
        * 用的最多的就是:public
       
* E:成员方法:
        * 权限修饰符:private,默认的,protected,public
        * 状态修饰符:static,final
        * 抽象修饰符:abstract
       
        * 用的最多的就是:public
       
* F:除此以外的组合规则:
        * 成员变量:public static final
        * 成员方法:
                * public static
            * public abstract
                * public final

5 个回复

倒序浏览
MouseListenerMouseListenerMouseListener
回复 使用道具 举报
很好加油
回复 使用道具 举报
父类引用指向子类对象啥意思
回复 使用道具 举报
可可TKD 来自手机 中级黑马 2016-3-27 11:56:44
报纸
总结的不错,收藏了
回复 使用道具 举报
这个可以..
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马