首页 > 代码库 > Java高级特性笔记

Java高级特性笔记

继承

访问控制:

  Public(公共):访问无限制。

  Protected(保护):因继承而生,同包内可访问,不同包的当前类的子类可访问,不同包的不是该类的子类不访问。

  friendly(默认):访问限于该包。

  Private(私有):访问限于该类。

 

1子类能从父类中继承什么,不能继承什么

能继承:

  (1)父类中的所有public成员(包括成员变量与成员方法)

  (2)父类中的所有protected成员(包括成员变量与成员方法)

    (2.1)当子父同包时,子类继承的protected成员,可以让同包其他类来访问,类似缺省

    (2.2)当子父不同包时,子类继承的protected成员,不可以让同包其他类来访问,类似私有

  (3)父类中的所有缺省成员(包括成员变量与成员方法),当子类与父类同包时可以继承,不同包不能继承

不能继承:

  (1)父类中的所有private成员(包括成员变量与成员方法)

  (2)异包父类中的所有缺省成员(包括成员变量与成员方法)

2子类与父类的构造方法是什么关系(构造方法能否继承)?

  (1).当产生子类对象时,先默认调用父类无参构造方法(除非有特殊指定),然后调用子类构造方法

  (2).在子类构造方法中可以使用super()来指明调用父类某个构造方法,super必须是子类构造方法中第一个可执行语句,并不意味着只能调用父类的一个构造,因为子类中可写多个构造,多次super()

    (3).子类不能继承父类的构造方法,更不存在覆盖的问题。

3子类从父类中继承的方法在子类中能否被改写?

  可以改写,叫方法重写或方法覆盖。

 

方法重载:方法名相同,参数列表不同,返回值类型可以不同。

方法覆盖(方法重写):子类与父类之间的多态性,子类对父类的函数重新定义。子类中定义的某方法与父类有相同的名称和参数,称为重写(此时返回值类型必须相同,否则会报错)。1、如果方法被重写,新的方法会覆盖父类中原有的方法,可用super调用原有的方法。2、子类的访问修饰权限不能低于父类的。

多态

1)继承,(2)方法重写,(3)运型时根据实际创建的对象类型动态决定使用哪个方法。

向上转型:父类引用指向子类对象;向下转型:将父类的对象强制转换为子类的对象

 

抽象类

  1关键字abstract定义; 实现:extends继承

  2)抽象类:对一类类的抽象,一般包含抽象方法,使用abstract关键字来修饰

  3)抽象类只能用来继承,不能直接产生抽象类对象,可以有构造方法(当某类共有常用)

  4)一个类继承抽象类后,若不对抽象类中的抽象方法重写,则这个类仍是抽象类

  5)抽象类中可以有非抽象方法,也可以没有任何方法;抽象类中若没有抽象方法,则不用重写

  6)意义:将方法的设计与实现分离(接口也是,抽象的,都具有不唯一性)

 

接口

  1)使用interface关键字来定义的一组抽象方法的总称。实现:implements 关键字

  2接口定义的属性为常量,相当于public static final

  3)只有常量和抽象方法

  4)可以有多个接口

note:(1)接口内的方法默认是抽象的public abstract并且不可有普通方法;(2)类接入接口后必须重写方法或定义为抽象类

 

内部类

  具有很好的分装性,内部类可以无限制的访问外部类的数据,包括私有属性和方法。并且可已被publicprivatestatic等修饰。当一个类没有static修饰时,这个内部类就叫成员类。

  成员内部类

  静态内部类

  匿名内部类

  局部内部类

作用

  1.内部类可以很好的实现隐藏。一般的非内部类,是不允许有 private protected权限的,但内部类可以

  2.内部类拥有外围类的所有元素的访问权限

  3.可是实现多重继承

  4.可以避免修改接口而实现同一个类中两种同名方法的调用。

 

Java高级特性笔记