抽象类、接口和多态

一、类
    1.类,类体,变量,方法等解释

    2.成员变量和局部变量

       成员变量:在类中直接定义,整个类中都有效。
       局部变量:在方法中定义,仅在方法中有效

    3.参数传递(JVM对于变量的处理):

       值传递:只有当参数为基本类型变量的时候,
     (地址)引用传递:只有当参数为引用类型变量,


二、构造方法:主要用于变量、对象的初始化,每个类都有一个默认的无参的构造方法。
          没有返回类型,也不能定义为void,在方法名前面不声明方法类型。可以
          重载,但是只有在new对象初始化时才能调用。
    1.子类继承父类时先调用父类的构造,在调用子类的构造
    2.构造方法在new一个对象时执行,并且不论多少个,只会执行符合参数的一个构造方法,每new一次对象,构造方法被执行一次
    3. 在new对象时,有参时调用有参的构造方法,无参时调用无参的构造。

三、对象:对象是类的一个实例,有状态和行为.


四、重写和重载:

    重载(@Overload):就是在一个类中创建多个方法,方法名相同,参数不同,返回值一样。(构造方法可以重载,不能重写)

    重写(@Override):1.在子类中可以根据需要对从基类中继承来的方法进行重写。
                      2.重写的方法和被重写的方法必须具有相同方法名称、参数列表和返回类型。
                       (注:返回值可以为父类中返回值的子类型.参数若为子类,则不是重写是重载)
                     3.重写方法不能使用比被重写的方法更严格的访问权限。
                     4. 重写方法不能声明抛出比被重写方法范围更大的异常类型。
    总结:重写是子类对所继承父类相同方法的一种更改,这个更改需要遵循格式按照父类的格式,访问权限,抛出异常等等,
             都在父类方法控制范围内,内部具体实现可以实现不同的效果。

五、抽象类和接口:

    抽象类:
    1.abstract修饰的class;
    2.不能使用new来实例化,也就是他没有直接对象,只能通过子类来继承;从而创建对象,因此也不能被final修饰;
    3.有抽象方法的类只能被定义成抽象类,抽象类里可以没有抽象方法。
    4.抽象方法必须由子类实现(重写)。否则子类的这个方法仍然是abstract ,子类也仍然是抽象类;
    缺陷:可以不全部实现;(接口的优点)

    接口:
    1.必须是public修饰的interface;
    2.一般情况下,接口中的方法只需要写返回值,方法名,参数。JDK1.8之后接口可以实现类用时要default修饰。
    3.可以实现一个抽象方法时,必须同时实现其他的抽象方法 
    4.接口里的方法相当于抽象方法  
    5.接口默认的是public 

    注:1.一般情况下接口中的方法要全部实现,但如果这个类是抽象类时,可以只实现接口中的一部分方法。
           2.类与类之间只能单继承,接口与接口之间可以多继承,一个类也可以实现多个接口。
           3.实现接口中的部分方法时可以全部实现放在哪。也可以把实现的类改为抽象类。
           4.接口的所有的方法默认为public类型,可以不写,并且接口中的变量默认为final类型

六、多态:编译时的多态(重载),运行时多态(重写)。接口也是一种体现。
    向上转型:继承的父类
    向下转型:(instanceof)


 

转载于:https://my.oschina.net/wzh001/blog/3015979

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值