【java】学习笔记(一)java关键概念

java中常涉及的概念:
 动态绑定
指在执行期间而不是编译期间判断所引用的对象的实际类型,根据其实际的类型调用其相应的方法。
 
条件:要有继承; 要有重写;父类引用指向子类对象
 
类的方法存储在code segment内存区,在程序执行过程中,主程序调用类方法时,会根据实际当中new出来的对象的类型来选择调用相应的类的方法。
即:某一方法调用的是基类对象的引用,实际执行期间,动态绑定机制会检测该引用所指向的类型实际为何类,从而调用该类的方法
简言之:动态绑定就是,如果子类对父类当中的某一方法进行了重写,那么,在实际运行过程中某对象到底是调用父类的方法还是调用子类的方法,得看该对象new出来的实际类型。相当于每个对象中有一个指向方法的指针,该指针具体指向哪个类的方法,得到具体执行的时候才确定。
抽象类:
关键字:abstract。public abstract void enjoy();
含有抽象方法的类必须被声明为抽象类: abstract class Animal    {  …  }
抽象类必须被继承 
抽象方法必须被重写 : 若在子类中未被重写,必须写上public abstract void enjoy();此时子类亦成为抽象类:abstract class Cat    {  …  } 。若子类已经声明为抽象类,则不需要再写抽象方法的声明了。
抽象类不能被实例化
 
抽象类只需声明,不需要实现。
final 
final的变量的值不能够被改变(包括成员变量和局部变量和形参)
final的方法不能够被重写,final的类不能够被继承。
形参当中的final变量不可以在方法之中被改变。作用:如果传递的是引用,则方法不可改变引用所指向的对象。
接口 
由于java是单继承的,为了拥有其他类的属性和方法,使用public interface Cat
  接口是一种特殊的抽象类,只包含常量和方法的定义,而没有变量和方法的实现
接口可以实现多继承
 
接口当中变量只能是public static final类型。—为了修正C++当中多继承(多个父类对象)时容易出现问题的地方:多个父类之间有相同的成员变量的问题。而使用interface实现的多继承,而接口里面的static变量并不属于专门对象
接口中的方法只能是抽象方法,只能是public的。不需要写abstract关键字
接口可以继承其他的接口,并添加新的属性和抽象方法。
多个无关的类可以实现同一个接口
一个类可以实现多个无关的接口,接口之间用,隔开
与继承关系类似,接口与实现类之间存在多态性。继承时使用implements代替extends
若一个接口对象的引用指向一个继承它的子类对象时,这个引用只能调用接口类中的方法:Singer s1 = new Student();s1.sing();
接口类作为形参时,可以传进来任何一个实现了该接口类的对象,效果类似于继承中的动态绑定。
接口类可以继承extends别的接口类。
若一个类实现了两个接口,而这两个接口当中有:相同函数名、参数列表 而返回值不同 的方法,不要酱紫!!若三者都相同,则在类中实现一次即可。
此条目发表在Java技术分类目录,贴了, , , 标签。将固定链接加入收藏夹。

发表评论

邮箱地址不会被公开。 必填项已用*标注