面向对象的三大特点:
封装
定义 :把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只有通过授权的操作,才能对数据进行操作。
访问级别 | 访问控制修饰符 | 同类 | 同包 | 子类 | 不同包 |
---|---|---|---|---|---|
公有 | public | yes | yes | yes | yes |
受保护 | protected | yes | yes | yes | no |
默认 | 没有修饰符 | yes | yes | no | no |
私有 | private | yes | no | no | no |
例如:
public class Person{
private int age;
public int getAge(){
return age;
}
public void setAge(int age){
this.age = age;
}
}
}
继承
定义 :当多个类存在相同的属性和方法时,可以从这些类中抽象出父类,在父类中定义这些相同的属性和方法。
- 子类最多只能继承一个父类
- java中所有的类都是Object类的子类
- 子类从父类中继承所有的变量和方法,但是不继承构造方法
例如:
public class Person{
String name;
int age;
void func(){
System.out.println("I am person");
}
}
public class Male extends Person{
void func(){
System.out.println("I am male");
}
}
多态
定义 :同一接口传入不同参数实现不同方法
public class Demo5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Animal an = new Cat();
an.cry();
an = new Dog();
an.cry();
}
}
class Animal{
int age;
String name;
public void cry();
}
class Cat extends Animal{
public void cry(){
System.out.println("猫猫叫");
}
}
class Dog extends Animal{
public void cry(){
System.out.println("汪汪叫");
}
public void die(){
System.out.println("die");
}
}