面向对象的三个特征:继承,封装,多态
继承:
1.继承的特征
1>.继承关系是传递的
2>.继承为单继承
2.抽象类相当于为其他类提供了一个模板
3.接口:多继承即一个接口可以继承一个以上的父接口
1>声明接口用interfance,而不是class
2>double PI = 3.14 等价于 public final static double PI = 3.14
3>接口没有自身的构造方法,所有成员方法都是public abstract方法,即“公共抽象方法”
4.关键字:
this的使用场合:
1.用来访问当前对象的数据成员:this.数据成员
2.用来访问当前对象的成员方法:this.成员方法(参数)
3.当有重载的构造方法时,用来引用同类的其他构造方法:this(参数)
super的使用场合:
1.用来访问直接父类的隐藏的数据成员:super.数据成员
2.用来调用父类中被覆盖的成员方法:super.成员方法(参数)
3.用来调用直接父类的构造方法:super(参数)
封装:提供4种访问权限来提供访问机制,即:public, protected,默认和private
Setter与getter方法:
1.set:每当想要修改这个变量的时候,就调用这个set函数。
2.get:专门用 于返回这个变量的值,然后在类的外部,就可以随意得到这个 private的变量的值。
多态:重载与覆盖
1.方法重载:
重载要求函数名一样,主要包括下面几点:
1、 必须是在同一个类中
2、 方法名相同
3、 方法参数的个数、顺序或类型不同
4、 与方法的修饰符或返回值没有关系
void add(int x, int y){}
void add(double x, double y){}
void add(double x, double y, double z){}这里插入代码片
2.方法重写:
从父类继承的东西不满意,则在子类中的方法中需要重写
要求:
1>参数列表必须完全与被重写方法相同
2>返回类型必须相同
3>访问权限不能比父类中被重写的方法的访问权限更高
3.构造器的重载:
与方法重载相似:
public ClassDemo(){
System.out.println("无参构造器");
}
public ClassDemo(int i){
System.out.println("有参构造器”);
}
public ClassDemo(String name){
System.out.println("有参构造器");
}在这里插入代码片
4.方法覆盖:
处于继承关系中,有子类和父类
即子类中的方法将父类中的方法覆盖