Java是面向对象的三大特征:封装、继承、多态
(暂时)
一、封装
Java封装:对属性的封装, 对方法的封装 , 对类的封装。
1.对属性的封装
1.为每个属性加上一个修饰符 private (私有的)
2.在实体类中,书写相对应的set方法和get方法 进行操作
class test{
private String name; //私有属性
private int age;
public String getName() { //通过方法取得私有属性的值
return name;
}
public void setName(String name) { //通过方法为私有属性赋值
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
2.对方法的封装、对类的封装(我还没学)
二、继承
Java中是单继承 (只能有一个父类)但是可以多重继承
class A {
属性
方法
}
class B extends A {
B就可以继承你非私有的属性和方法
}
2.1内存分析
无论是父类和子类都在堆中的同一个内存空间中
2.2变量、方法和构造方法的继承
1.成员变量(属性)
公开的(public)和默认的(啥也不写)属性,子类是可以使用私有的属性,子类是无法使用
2.成员方法(方法)
公开的(public)和默认的(啥也不写)方法,子类是可以使用的私有的方法,子类是无法使用
3.构造方法
new 子类(); 尽管你是 new 的子类,但是会执行父类的构造方法:
1.先执行父类的构造方法,然后再执行子类的构造方法
2.如果父类中没有无参构造方法,子类也不能有无参构造方法
三、多态
父类同一个方法,放在不同的子类对象上面会有不同的效果的
3.1方法的多态
方法的重写和重载就叫方法的多态
3.1.1方法的重写(override)
重写的定义:重写的是方法,有时父类的方法需求满足不了子类的需求,就需要在子类中重写父类的方法。
重写的要求:方法体不一样,但是方法的名字、返回值、参数都必须一样。
3.1.2 方法的重载(overload)
重载的定义:在同一个类中,如果两个或多个名字一样的方法,且参数列表不一样,那么这叫方法的重载。
重载的要求:方法的重载必须写在同一个类中,方法的名字必须一样,参数列表必须不一样,返回值可以一样可以不一样(无参构造方法和有参构造方法也是方法的重载)。
3.2对象的多态
父类的引用指向子类的对象
父类 父类的引用 = new 子类()
1.必须有继承关系
2.必须重写父类的方法
3.父类的引用可以调用子类重写方法,不能调用子类独有的方法
3.3多态的转型之向上转型
语法格式:
父类 父类的引用 = new 子类();
向上转型是自动转的将子类的对象赋值父类的引用,小范围(子类)转为大范围(父类)的可以自动转型.
父类的引用可以调用父类的所有的方法,但是不能调用子类独有的方法。
3.4多态的转型之向下转型
语法格式:
父类 父类的引用 = new 子类();
子类 子类的引用 = (子类) 父类的引用; 强制类型转换
向下转型可以调用子类独有的方法。如果要向下转型,必须先向上转型。