目录
1.类的封装
2.类的继承
2.1extends关键字
2.2super关键字
2.3instanceof关键字
3.多态
4.方法的重载
5.抽象类
6.接口
接口的基本概念
类和接口之间的关系
1.类的封装
思想:“假如你吃了个鸡蛋觉得不错,何必要认识那个下蛋的母鸡呢?”——钱钟书
将对象的属性和行为封装起来,
而将对象的属性和行为封装起来的载体就是类,
类通常对客户隐藏其实现细节,这就是封装的思想。
2.类的继承
2.1extends关键字
语法:
public class 子类 extends 父类{
……
}
extend是后面只能有一个父类
2.2super关键字
public class 子类 extends 父类{
public void do(){
super.do();
}
}
2.3instanceof关键字
使用instanceof判断是否存在继承关系
子类对象 instanceof 父类名称/接口名称
class A
class B
class C
C c = new C();
c instanceof B ====》 ture
3.多态
同一个变量,同一个方法,执行出不同的结果
语法:
• 父类类型 引用变量名 = new 子类类型();
• 如:
Shape sr = new Rect();
sr.show();
特点:
• 当父类类型的引用指向子类类型的对象时,父类类型的引用可以直接调
用父类独有的方法。
• 当父类类型的引用指向子类类型的对象时,父类类型的引用不可以直接
调用子类独有的方法。
• 对于父子类都有的非静态方法来说,编译阶段调用父类版本,运行阶段
调用子类重写的版本(动态绑定)。
• 对于父子类都有的静态方法来说,编译和运行阶段都调用父类版本。
4.方法的重载
1.方法名相同,参数个数不同
2.方法名相同,参数顺序不同
3.方法名相同,参数类型不同
4.方法名相同,参数不同,且返回值类型也不同
5.抽象类
关键字:abstract
概念:
抽象方法:
• 抽象方法主要指不能具体实现的方法并且使用abstract关键字修饰,也就是没有方法体。
• 具体格式如下:
访问权限 abstract 返回值类型 方法名(形参列表);
public abstract void cry();
抽象类:
抽象类主要指不能具体实例化的类并且使用abstract关键字修饰,也就是不能创建对象。
抽象类和抽象方法的关系
• 抽象类中可以有成员变量、构造方法、成员方法;
• 抽象类中可以没有抽象方法,也可以有抽象方法;
• 拥有抽象方法的类必须是抽象类,
因此真正意义上的抽象类应该是具有抽象方法并且使用abstract关键字修饰的类。
抽象类的实际意义
• 抽象类的实际意义不在于创建对象而在于被继承。
• 当一个类继承抽象类后必须重写抽象方法,否则该类也变成抽象类,也
就是抽象类对子类具有强制性和规范性,因此叫做模板设计模式。
抽象类的应用
• 银行有 定期账户和活期账户。继承自 账户类。账户类中:
• public class Account{
private double money;
public double getLixi(){}
}
6.接口
接口的基本概念
• 接口就是一种比抽象类还抽象的类,体现在所有方法都为抽象方法。
• 定义类的关键字是class,而定义接口的关键字是interface。
• 如:
金属接口 货币接口 黄金类
类和接口之间的关系
主要区别:
• 定义抽象类的关键字是abstract class,而定义接口的关键字是interface。
• 继承抽象类的关键字是extends,而实现接口的关键字是implements。
• 继承抽象类支持单继承,而实现接口支持多实现。
• 抽象类中可以有构造方法,而接口中不可以有构造方法。
• 抽象类中可以有成员变量,而接口中只可以有常量。
• 抽象类中可以有成员方法,而接口中只可以有抽象方法。
• 抽象类中增加方法时子类可以不用重写,而接口中增加方法时实现类需要重写(Java8以前的版本)。
• 从Java8开始增加新特性,接口中允许出现非抽象方法和静态方法,但非抽象方法需要使用default关键字修饰。
• 从Java9开始增加新特性,接口中允许出现私有方法。
1.方法名相同,1.参数个数不同。1.方法名相同,参数个数不同。
instanceof关键字
3instanceof关键字
extends后面只可以有一个父类
extends后面只可以有一个父类



