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)类接入接口后必须重写方法或定义为抽象类

内部类

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

成员内部类

静态内部类

匿名内部类

局部内部类

作用

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

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

3.可是实现多重继承

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值