Java学习笔记之三

类的继承

语法: 

class 子类 extends父类{

子类的属性;

子类的方法;

}

继承的特点:

1.     如果某些类有共同的属性和行为,可以使用继承来实现;

2.     子类会把父类的所有属性继承,同时子类还可以有自己的属性和方法;

3.     父类更通用,子类更具体;

4.     子类只能获得父类中的非private属性,如果想要继承private属性就要提供公共的set和get方法,私有方法无法继承;

5.     java中只能做单继承:如class A extends B{}(区别多继承:class A extends B,C)

6.     java支持多级继承:如class A extends B{}

class C extends A{}

         继承的好处:提高代码的复用性

继承的内存图

         通过继承之后的子类实例化后,当用到属性的时候,现在子类的本类(this)中找,找不到再去父类(super)中找。

super关键字

super调用必须在第一行的语句,与this类似。

1.      子类实例化时先调用父类的构造器,再调用子类的构造器。

2.      子类的构造器被调用的时候,父类的默认构造器就会被调用,如果父类存在有参数的构造器,一定要把默认的无参构造器显式的定义出来。

3.      子类在调用父类的有参数的构造器时,使用super(参数列表),父类的默认无参构造器不会再调用。

4.      super可以表示父类的引用。可以使用super和this用来区分父类和子类中的同名属性和方法。在子类中访问属性(方法)时,现在子类中找,再在父类中找。

对比this关键字:

1.      代表当前类所指定的实例的引用;

2.      区分同名的属性和变量;

3.      可以调用同类中的构造器;

4.      调用本类中的属性和方法。

方法的重写/复写(override)

父类和子类有相同的方法:相同的方法名、参数个数和类型、返回值,方法体可以不同,子类会覆盖父类的同名方法,所以外部调用的方法一定是子类的方法。

※※重写与重载的区别

重写:在继承中,父子类有除方法体不同之外其他都相同的同名方法。一般是父类的该方法满足不了子类的需求导致。

重载:在同一个类中,两个方法名相同,参数个数或者参数类型不同。目的:节省类中的命名资源和提高代码的可读性。

final关键字

1.      方法:这个方法不能被重写

权限修饰符 final 返回值类型 方法名(参数列表){

}

2.      属性:属性值不能再改变à常量

权限修饰符 [static]final 数据类型 属性名 = 值

属性名:一般采用大写,多个单词使用下划线来分隔,而且这种常量多定义在接口中。

3.      类:不能被继承

final class 类名{

属性

方法

}

抽象类

抽象方法概念:

当多个具体的实体类存在着共同的行为,但是有不同的表现,我们在父类继承过程中父类的方法具体实现不同确定,但是能确定的是他们都有这种行为。把这种行为方法作为抽象方法。

特点:

1.      抽象类无法实例化;

2.      必须被子类继承才能使用子类实例化;

3.      继承了抽象类的非抽象子类必须实现抽象类的所有抽象方法;

4.      抽象类也可以继承抽象类,就不需要父抽象类的方法;

5.      抽象类的抽象方法不能共存的关键字:private,final,static。

抽象类中可以没有抽象方法,但是有抽象方法的一定是抽象类。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值