JAVA面向对象3

面向对象特征--封装,继承,多态

继承:

定义:多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么,多个类中无需再定义这些属性和行为,只需要和抽取出来的类构成继承关系。
继承的好处:减少了代码的冗余、提高了代码的复用性、在子类中扩展子类自己特有的功能,而不影响其他类、只要类与类之间符合什么是什么的关系就可以使用继承

继承关键字(extends)

格式:class a extends b                a是b的子类(派生类)

子类会继承父类(基类)所有的实例变量和实例方法

规定super(形参列表);必须在构造器的首行。

如果构造器首行没有声明,默认是super();即调用父类的空参构造方法

这么做是为了先对父类成员初始化

开发中常见错误:

如果子类构造器中既未显式调用父类或本类的构造器,且父类中又没有空参
的构造器,则编译出错

抽象类

定义:如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

用关键字abstract修饰的类.

一般是用来让程序猿继承并实现抽象类中的方法。

特点:抽象类除了不能实例化对象,其它功能和正常类一样。

      抽象类只能用作父类(基类),只能被继承,继承的子类必须实现抽象类中的所有方法,参数类型、返回值类型必须和父类完全一致,否则将本类也声明为抽象类。

向对象特征--封装,继承,多态

多态:

定义:同一种事物,在不同时刻表现不同状态。父类引用指向子类对象,前提:二者必须有直接或者间接继承关系。

好处:提高了代码的扩展性;

eg:Animal sdf=new Dog();//Animal为父类   Dog为子类  。Animal引用指向Dog的对象

将Dog类向上转型为Animal类,用sdf直接调用父类中的方法,如果子类重写了父类的方法,则调用子类重写的方法。

  Dog dog=(dog)sdf;//向下转型,这样就能调用子类独有的方法;

编译期是父类,运行期是子类。

多态环境下调用静态方法、成员变量时,编译和运行期间都看等号左边。

final关键字

final可以修饰类、方法、属性、参数

final修饰的变量值不能被改变,故称为常量。

类:不能被定义为抽象类或是接口,不可被继承
方法:子类里不可以重写
参数:参数值在方法中不可被修改
属性:定义时就必须直接赋值或者在构造方法中进行赋值,并且后期都不能修改

接口

面向接口编程;

在程序设计时,不考虑接口功能的具体实现,只关心接口需要具备哪些功能。

从本质上讲接口是一种特殊的抽象类,包含抽象方法。

接口的定义:用关键字interface来声明一个接口

[访问修饰符] interface 接口名称 [extends 其他的接口名1,….其他的接口名n]
{
// 声明常量 抽象方法 静态方法 默认方法
}
接口的使用: 类使用implements关键字实现接口。在类声明中,Implements
关键字放在class声明后面。
[访问修饰符] class 类名 implements 接口名1,接口名2……{ }
结合继承:
[访问修饰符] class 类名 extends 父类名 implements 接口名1,接口名2……{ }
接口的特性:
接口不能实例化对象;
接口只能被类实现;
一个类可以实现多个接口;
一个接口可以继承多个接口;
接口是隐式抽象的,主要是用来定义功能的;
接口可以被多个类继承;
接口中可以包含静态成员变量、静态方法、抽象方法、默认方法
当类实现接口的时候,类要实现接口中所有的抽象方法,否则,该类必须
声明为抽象的类。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值