文章目录
Java的三大特性
一、封装
1.案例
public class Student {
//属性私有化
private String name;
private int id;
private char sex;
//使用get/set方法调用
public String getName(){
return this.name;
}
public void setName(String name){
this.name=name;
}
public int getAge(){
return this.age;
}
//可以设置条件过滤信息,提高安全性
public void setAge(int age){
//if...
this.age=3;
}
}
2. 封装的意义
1.提高程序的安全性,保护数据
2.隐藏代码实现细节
3.统一接口
4.提高系统的可维护性
二、继承
代码格式:
public class 子类 extends 父类{}
1.定义
继承是一种用已有的类创建新类的机制。
像医生、码农、律师等不同职业(特性)都是人类(共性)。 //后续 多态
人类为父类,各职业人员为子类。
再比如狗(父类)分为中华田园犬、哈士奇(子类)等品种。
2.继承的意义
1.提高代码的复用性
2.减少代码冗余
3.增强类的功能拓展
3.继承的特点
1.单继承,但可以多层继承。
2.直接或者间接继承object类
3.子类只可以访问父类中非私有成员,私有可继承不可直接用。
4.调用某个属性时,先看子类有没有:没有就去父类找直至object。
调用方法时,有个虚方法表,不用一层一层向上查。
5.每个构造器的首行有一个默认的super()。子类先走父类不带参构造器。
4.方法的重写(@Override)
当父类方法无法满足需求时,需要对方法进行重写。
5.this、super关键字
this调用:就近原则。
super调用:直接访问父类。
三、多态
1.定义
同一个方法可以根据发送对象不同而采取多种不同的行为方式。
即同类型对象,表现出不同形态。
人类可从事医生、码农、律师等不同职业
2.多态存在的条件
a.继承
b.方法需要重写
c.父类引用指向子类对象!Father f1=new son();
3.多态调用成员的特点
编译看左边:java编译代码的时候,会看左边的父类中有没有这个变量,如果有,编译成功,如果没有编译失败。
运行也看左边: java运行代码的时候,实际获取的就是左边父类中成员变量的值。
运行看右边: 方法被重写覆盖了,看右边子类。
多态的弊端:
无法访问子内的特有功能。