面向对象3

1.多态
(1)引用类型转换
说明:对象是一种数据;
      对象是一种引用类型的数据;
      引用类型的数据全是对象,对象又分为数组类型,类类型,接口类型。
子对象可以是所属的子类类型,也可以是父类类型。
       a.向上转型:子对象由子类型自动转为父类型

子对象类型转为了父类型,子对象只能访问从父类中继承的属性和方法,

如果方法被子类重写,访问重写之后的方法。

b.向下转型:子对象由父类型强制转为子类型

子对象类型转为子类型,那么子对象可以访问子类中扩展的属性和方法,

以及从父类中继承的属性和方法,如果方法被子类重写,访问重写之后的方法。

启发:子对象所属的类型不同,决定了子对象能够访问的属性和方法不同。
(2)什么是多态?

生活中:同一个事物的多种形态

java中:同一个方法根据传入对象的不同,执行结果不同。

(3)多态的前提
a.继承
b.方法的重写
c.向上转型
(4)多态有什么好处?
减少代码量,降低程序的耦合度。
(5)总结:
面向对象的特点有三个,分别是:封装,继承,多态
2.包

(1)概念:包是Java用于提供访问保护和命名空间管理的方式,简单的理解,

包就是用来将Java中类和接口等进行分类管理的工具,类似于操作系统中文件夹管理文件一样。

(2)包的声明:
package   包名;
注意:该语句必须是源文件中的第一条语句;
      该语句的作用是,创建一个包,来管理当前源文件中所有的类和接口;
      包可以相互包含,子包名由 父包名.子包名  构成;
       (3)包的引入:
import   包名.类名;
import   包名.*;
说明:同包下的类之间,可以直接访问;
      不同包下的类之间,如果想要访问,需要先导入才能访问;
(4)源文件的使用
一个源文件中,可以定义多个类和接口;
但是,最多只有一个公共的类或接口;
如果有公共的类或接口,其名字必须和源文件相同;
在编译一个源文件时,每一个类和接口都会生成一个字节码文件,字节码文件名和对应的类或接口名相同
3.instanceof关键字
(1)概念:它是一个运算符,作用是判断一个对象是否是某个类的类型。
(2)使用语法:
对象   instanceof   类名
说明:运算结果是boolean
4.访问修饰符
(1)概念:用于控制访问权限的修饰符
(2)访问修饰符有:public   protected  private
(3)修饰类:只能用public
public class:该类可以被其他所有类访问
缺省类:该类只能被同包下的类访问
(4)修饰类中的成员(属性、方法、构造器):可以采用public   protected  private
public:该成员可以被所有类访问,该成员可以继承到所有包下的子类中
protected:该成员可以被同包下的类访问,该成员可以继承到所有包下的子类中
缺省:该成员可以被同包下的类访问,该成员只能继承到同包下的子类中
private:该成员只能在当前类中使用,不能被继承
(5)对继承的修正
同包下,子类可以继承父类非私有的属性和方法;
不同包下,子类可以继承父类公有的和受保护的属性和方法;
5.抽象类
(1)抽象方法:使用abstract修饰的方法

如果一个类的某些功能比较抽象或者无法在本类中具体实现,可以将这个类声明为抽象的

使用abstract修饰的方法。

特点:没有方法体,使用abstract修饰的方法。
(2)抽象类:使用abstract修饰的类
特点:可以包含抽象方法;
      不能实例化
(3)抽象类和具体类的对比
相同点:
都有构造器,属性(变量或常量),非抽象方法;
不同点:
抽象类中可以有抽象方法,而具体类中不能有抽象方法;
抽象类不能实例化,具体类可以实例化;
(4)抽象类和抽象方法的关系

含有抽象方法的类,一定是抽象类;

抽象类中可以有抽象方法,也可以没有抽象方法

(5)抽象类作用:用来定义标准,然后被继承
6.接口

(1)概念:在程序开发中为了使不同的开发人员,编写的代码有很好的协同性,

必须对各自开发的进行统一的约定,这个约定就是接口。

在Java中接口不仅仅是程序开发过程中“约定”,更是更加抽象化的抽象类。

说明:接口的本质就是类,它是对类的补充
(2)意义:实现多继承
(3)接口的定义:
[修饰符]   interface   接口名{
//常量属性:public   static  final  数据类型  常量名=固定值;

//抽象方法:public   abstract   返回值类型   方法名([参数]);

}

(4)接口的特点:不能实例化;可以多实现;可以多继承
(5)类实现接口:多实现
[修饰符]   class   类名  [extends   父类名]  [implements   接口1...,接口n]{
}
(6)接口继承多个父接口:多继承
[修饰符]   interface   接口名  [ extends 接口1...,接口n ]{
}
(7)抽象类和接口的比较
相同点:
都不能实例化;
都可以含有常量属性和抽象方法;
不同点:
接口使用关键字interface,抽象类使用abstract  class;
接口中只能定义常量和抽象方法,而抽象类中可以定义非抽象方法、变量属性、构造器==;
抽象类只能单继承,接口可以实现多继承
7.final关键字
(1)修饰类:该类不能被继承
(2)修饰属性:常量
(3)修饰方法:不能被重写











































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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值