Java面向对象-----继承笔记

来源:互联网 发布:新网互联域名管理 编辑:程序博客网 时间:2024/04/27 23:12

注意:继承并不是特别推荐使用,因为继承违反了程序设计中的“高内聚,低耦合”。继承会使程序之间的耦合性大大增加,降低了程序的复用性。并且,JAVA中只能使用单继承


会使用到的关键字:extends ,this,super


extends: class 子类 extends 父类

this  和 super :

       ① this.   可以访问本类中的方法和属性(全局变量)

        super.  可以访问父类中的方法和属性(全局变量)

②this(参数 );  通过参数来执行本类中的别的构造方法,必须放在第一行,且只能在构造方法中使用

   super(参数); 通过参数来执行父类中的构造方法,必须放在第一行,且指那个在构造方法中使用,且不那个用来访问private.


静态代码块:在main()执行前执行,并且只会执行一次,无论new 多少个对象


程序的初始化顺序:父类静态代码块 >>>子类静态代码块>>> 父类属性初始化赋值>>> 父类构造方法

   >>> 子类属性初始化赋值   >>>>子类构造方法


方法重写( override ):

①方法重写只能是子类重写父类的方法

②方法名相同,参数相同,返回值类型也相同(或者是子类的返回值是父类的子类)。

③访问修饰符必须大于或等于父类的访问修饰范围。

④异常必须比父类的异常更加广泛。


方法重载( overload ):

①:一般情况下是发生在同一个类中。

②:方法名相同,参数列表不相同(参数的类型,参数的个数,参数的顺序)。

③:方法重载与返回值无关。

④:与访问修饰符无关。


接口( interface )(用于制定标准,规范):

①:命名一般在接口名前加 I

②:接口里的方法只能用 public , abstract (其修饰的方法为抽象方法)修饰。

③:接口中的变量必须要赋初值,并且默认只能是用public static final 修饰 ,习惯上命名要大写,因为其实际上是一个常量。(常量一般大写,变量一般小写

④接口不能被实例化,只能通过其实现类( class 类名 implements 接口名 )被实例化.

接口   xxx = new 实现类();

⑤接口的实现类必须实现父类的所有抽象方法,除非自己也是一个接口类。



抽象类(介于类和接口之间):

①:抽象类要加 abstract 即(abstract class 类名

②:abstract修饰的方法称为抽象方法。

③:抽象类和抽象方法的关系:1、抽象类中可以不包含抽象方法可以同时存在抽象方法和普通方法。

      也可以只含有抽象方法。

           2、普通类中不可以有抽象方法,即有抽象方法的类必须是抽象类。

④抽象类不能实例化,只能通过其子类被实例化。

抽象父类   xxx = new 非抽象子类();

⑤其子类必须实现其父类抽象类,否则其自身也是抽象类。  如果子类是以final修饰,则必须实现抽象方法。

⑥抽象类的属性不能是私有修饰的( private )。


final ( 最终的 ):

①:其修饰的变量不能被改变,即常量,一般需要大写。

②:其修饰的方法不能被重写。

③:其修饰的类不能被继承。

附:其修饰的引用类型(对象类型)的变量,不能再指向另外的对象(即不可以在new 新的对象) 

但是其对象的属性是可以改变。

   

1 0
原创粉丝点击