面向对象三大特性

    面向对象三大特性,读起来朗朗上口:封装、继承和多态,在不同的学习阶段,理解程度是循序渐进的。好像每一个阶段都会强调面向对象的特性,现在接触java的时候,同样告诉我们面向对象。面向对象真的这么重要吗?

【面向对象】

    面向对象符合人类思考问题的习惯,成为指挥者,要想完成一件事情直接找一个对象去做,而不是自己辛辛苦苦成为执行者一步一步去做,能将问题简单化,可见面向对象的确不一般。那么我们就通俗的理解一下面向对象的三大特性吧。

【封装】

封装:将对象的方法和属性的实现细节进行隐藏,仅对外提供一些公用的访问方式。

    我们常见的封装也就是方法和类了,某个类可以是具体实现一个功能,我们应用的时候只要知道这个类是干什么的就好了,而不是需要了解这个类具体是封装了哪些东西,类中的方法也可以进行一个个的归类,一个方法一个功能,调用的时候直接调用方法就可以了,而不用了解方法的具体实现过程,这就是封装,可以将问题实现的细节进行隐藏,方便用户的使用。除了类、方法以外,包也是很高的封装体。

【继承】

继承:子类自动继承父类非私有的成员变量和成员方法。

    java只支持单继承,不支持多继承,但是接口的多实现弥补了这个不足,它是支持多重继承的,即可以传递着继承,有一点需要我们注意继承了父类,子类可以对父类的方法进行重写,重写的修饰符必须是大于等于父类的修饰符的。

出final修饰的类都是能够被继承的,我们知道抽象类可以被继承,一般类可以被继承,那么有没有想过抽象的类可以继承一般的类吗?答案是可以的。

【多态】

多态:父类的引用指向子类对象,配合继承和实现使用,重点是离不开重写,如果没有方法重写,多态也就毫无意义。

    多态的出现也是大大提高了代码的复用性,多态的前提是继承和接口的实现,方法的重写。多添分为三种形式:一般类和类之间的继承;抽象类和一般类之间的继承;还有实现类和接口之间的实现,这都是可以用父类引用指向子类对象完成的,多态可以说是向上转型,那么既然有向上转型,那么向下转型也是少不了的,其实向下转型属于强制转换了,同我们之前学习的数据类型的强制转换,可以结合instanceof来判断使用。

【代码实现-综合三大特性】

//抽象的Animal类,两个方法,一个共有的,一个抽象的
public abstract  class Animal {
	public void drink(){
		System.out.println("动物都需要喝水");
	}
	public abstract void eat();
	
}
//Cat继承Animal,重写方法,并且添加自己特有catchMouse方法
public class Cat extends Animal{
    public void eat(){
        System.out.println("猫咪喜欢吃鱼");
    }
    public void catchMouse(){
        System.out.println("猫特有的功能是会抓老鼠");
    }
}
//Dog类
public class Dog extends Animal{
    public void eat(){
        System.out.println("狗喜欢啃骨头");
    }
    public void keepHome(){
        System.out.println("狗特有的功能是能保护家");
    }
}
//测试类
public class Test01 {
    public static void main(String[] args) {
        //多态实现共有方法调用,但是不能调用各自特有的方法
        Animal c=new Cat();
        c.drink();
        c.eat();
        Animal d=new Dog();
        d.drink();
        d.eat();
        //向下转型调用特有方法
        if(c instanceof Cat){
            Cat c1=(Cat)c;
            c1.catchMouse();
        }
    }
}

【小结】

     知识就是在不断回顾,不断加深的,刚开始的时候不太懂没有关系,慢慢的积累,慢慢的总结,总有一天会明白的。现在这种学习习惯一直贯穿着我的学习,而且很多问题想了还不够,更需要动手去做一下,切不可眼高手低,始终坚信:实践出真知,坚持学习,面向对象将会一直陪伴我们,希望我们将面向对象思想贯穿到底。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值