小小雷利

Satan's book

07_java面向对象—继承

 
1.提高了代码复用性。
2.让类与类之间产生关系。有了这关系,才有了多态的特性。


1.变量
当变量如果子父类中出现非私有的同名成员变量时。
子类要访问本类中的同名变量,用this,代表子类对象的引用。
子类要访问父类中的同名变量,用super 代表父类对象的引用,super的使用和this的使用一样。


2.函数
当子类出现与父类一模一样的函数时,父类的函数会被覆盖。
保留父类功能的定义,并修改父类功能的内容。
函数的另一种特性:重写(覆盖)
覆盖
1.子类覆盖父类,必须保证子类的权限大于等于父类。
2.静态只能覆盖静态。(开发不常见)


3.子父类中的构造函数
在对子类对象进行初始化时,父类的构造函数也会运行。
那是因为子类的构造函数默认第一行有一条隐式的语句 super();
super();会访问父类中的空参数的构造函数,而且子类中所有的构造函数第一项默认的都是super();
子类一定会去访问父类的默认构造函数,如果不想访问默认构造函数可以手动添加super();

super语句一定是定义在子类构造函数的第一行。
子类所有的构造函数,都会访问父类中空参数的构造函数。
以为子类的每一个构造函数的第一行都有一句隐式super();

 

 

 


final(最终);修饰符;修饰:类,函数,变量(成员变量和局部变量)。
1.被final修饰的类不可以被继承,为了避免被继承,被子类覆盖。
2.被final修饰的函数不可以被覆盖。
3.被final修饰的变量是一个常量只能赋值一次。可以是成员变量,也可以是局部变量。
  在描述事物是,一些数据的值是固定的,那么为了阅读性,给这些固定的值器个名字。
  而这是值不需要变化,所以加上final修饰。
  常量的书写规范,所有字母大写,如果由多个字母组成格式为: 单词_单词
4.内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量。

例子:
public static final PAI = 3.14;  //加上静态可以让这个类常量被多个函数使用。
                                             //类常量不能定义于main主函数中。



 
 
abstract(抽象);修饰符;修饰:类,函数
当多个类中出项相同功能定义,当时功能主体不同。
这时可以向上抽取。这时,只抽取功能定义,不抽取功能主体。


抽象类(就是需求,定义一些简单的需求,让子类来具体实现该需求的主要功能)
1.抽象方法一定要定义在抽象类中。
2.抽象方法和抽象类都必须被abstract修饰。
3.抽象类不可以用new创建对象。因为抽象方法没有意义。
   如果抽象类中不定抽象方法,这样做仅仅是不让该类建立对象。    
4.子类必须复写父类中所有的抽象方法后,才可以建立对象。
   也就是说抽象类一定会被复写,强迫子类复写。

 

 

 
 
接口:初期理解,可以认为是一个特殊的抽象类。
       当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。

接口是对外暴露的规则
接口是程序的功能扩展
接口可以用来多实现
接口与接口可以继承
类与接口是实现关系,而且类继承类的同时可以实现多接口。


interface(接口):定义接口
1.接口中常见定义:常量,抽象方法。
2.接口中的成员都是用public修饰的。
3.接口中的成员都有固定修饰符。
  常量:public static final
  方法:public abstract
4.接口是不可以创建对象的,需要子类覆盖接口中所有的抽象方法,子类才可以实例化,否则子类还是一个抽象类。

implements(实现):衔接类与接口,接口与接口

 

 

 


 

posted on 2012-03-24 01:06  小小雷利  阅读(168)  评论(0编辑  收藏  举报

导航