Java听课笔记——10.23
1.类的封装:等于是复习了上一节课的东西
修饰关键字有: private protected public ,缺省
注意:缺省的修饰符在同一包中可以访问,不同包中不能访问
类封装的原则:(同C++):
变量为private型,方法(函数)和接口为public
连接上一节课的static,static修饰的方法和变量可以在没有创建对象的情况下直接进行访问
即:使用类名引用法进行访问
static变量游离在对象之外,只有一个副本,
一些工具类的定义多用static 比如math.abs();函数
注意:如果在非static方法中使用了外部定义的static变量,则错误是编译失败!
2. 继承(也是上一节课讲过的)
继承的目的:代码的复用
一、方法的多态:
(1).重载: 同名不同参
(2).重写overwrite (覆盖):同参同返回值
父子类之间发生,子类中重写父类中的函数可以进行覆盖
(3).若参数相同却返回值不同:报错!
(一样则覆盖,不一样则重载,异同参半报错!)
二、类型的多态:
(1).isA关系(即是关系)
(2)2.hasA关系(举例:person对象包含生日(时间)对象)
三、编译时多态
(1).编译时多态:
(2).运行时多态:
子类对象即是父类,
父类对象引用子类:例:Animal animal = new Bird();
比如在调用对象的时候,取决于animal调用的方法是Animal还是Bird声明的
3.抽象类
必须用abstract修饰;
本身不能被实例化对象,只能作为其它类的超类
抽象方法的定义规范,加分号。
定义的方法分为抽象方法(被抽象类实现的)和实例方法(未被实现的)
可以没有抽象方法,但是构造方法不能是抽象方法
抽象类继承: 必须给出抽象方法的实现,并且必须实现所有的。
抽象类的意义:给出一种约束规范
4.接口:
new右键新建interface
ava interface 类中所有的成员方法都是抽象的;
接口由实现该接口的类来提供方法的具体实现。
一个Java接口是由一组常量和抽象方法定义组成。
接口的定义:
接口中的方法可以不加abstract修饰,因为接口里没有抽象的概念
注意:接口中不可以有构造方法!!!!!!!
补充:类的重构:refactor ->rename
接口的实现:
接口继承:
类似类的继承,使用extends
比较抽象类和接口:
相同点
都包含抽象方法
都不能被实例化
都是引用数据类型
不同点:
约定:
抽象类: 约定了多个子类共同使用的方法.
接口: 约定了多个互不相关的类之间共同使用的方法
继承性: 抽象类与子类之间采用单继承机制
一个类实现多个接口则可以实现多重继承
结构: 抽象类中可以包含非抽象方法,也可以声明构造方法.
接口中的方法全是抽象方法,不能声明构造方法
访问权限: 抽象类具有和普通类一样的访问权限
接口和类也是一样的访问权限,但是成员只能是public权限
成员变量: 抽象类中可以声明成员变量,子类可以对该成员变量赋值
接口只能是常量