Java面向对象的三大特性

封装

封装是将类的信息封装在内部,不给外部直接访问,通过对外提供方法来方位类里面的数据。
修饰符:private, protected 以及public. 如果不写明,则默认是protected.

封装的实现:
(1)修改类内部属性的访问控制符:private
(2)提供内部属性的getter以及setter方法来用于类内部属性的读取以及写入
(3)在getter和setter方法中加入属性控制语句,用于判断属性写入的合法性。
(4)单例模式就是对封装最好的一个例子。

public class User {
    private String userId;
    private String userName;

    public String getUserId() {
        return userId;
    }
    public void setUserId(String userId) {
        this.userId = userId;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
}

继承

继承是一种类似数学里的属于关系,比如:狗属于动物,桃花属于植物,被继承的类叫做父类(也叫基类),而自己称之为子类(派生类),子类拥有父类的属性,比如狗拥有了动物名字的属性,拥有吃饭的功能等。

//动物类,是基类
public class Animal {
    //这是动物的属性
    private String name;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    //这是动物的功能
    public void eat(){
        Log.e("Animal", "动物要吃饭的哦");
    }
}

//这是狗类继承了动物类,所以狗类拥有了动物的name的属性,默认拥有了Animal的eat()功能,但是狗类也可以重写(覆盖)父类的方法,因为狗吃东西的属性给其它动物不一定完全相同,有自己的吃饭特点。

public class Dog extends Animal{
    //这是重写了Animal中的方法
    @Override
    public void eat() {
        super.eat(); //这是依然调用了父类的eat方法
        Log.e("Dog", "狗吃的是骨头");
    }
}

多态

多态:是指对象拥有多种形态。主要表现为引用多态和方法多态。而继承是多态实现的基础。

  • 引用多态
    (1)父类的引用可以指向本类的对象
    (2)父类的引用可以指向子类的对象
    拿上面的狗类和动物类做例子;
//测试类
public class Test{
    public static void main(String[] args) {
        //父类的引用可以指向本类的对象
        Animal ani1 = new Animal();
        //父类的引用可以指向子类的对象
        Animal ani2 = new Dog();    
    } 
}
  • 方法多态
    (1) 创建父类对象时,调用的方法为父类方法;
    (2) 创建子类对象时,如果子类重写了父类的方法,则调用的是子类的方法;如果子类没有重写父类的方法,则调用的是父类的方法(继承父类的方法);

还是以上面的狗类和动物类为例

//测试类
public class Test{
    public static void main(String[] args) {
        //父类的引用可以指向本类的对象
        Animal ani1 = new Animal();
        //父类的引用可以指向子类的对象
        Animal ani2 = new Dog();
        //动物要吃饭的哦
        ani1.eat();    
        //输出狗吃的是骨头
        ani2.eat();
    } 
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值