Java面向对象的三大特征

Java中面向对象的三大特征:

    继承性(Inheritance)

    多态性(Polymorphism)

    封装性(Encapsulation)

继承

多个类具有相同属性(成员变量)或者行为(成员方法)时候,将这些抽取出来定义到一个公共的类中,其他各类可以继承此公共类,从而不用每个类中重复定义公共部分,这个公共部分就是父类(也称超类或者基类),其他类称为子类。
继承特点,优点:
1):Java只存在单个继承不存在多个继承,可以多层继承,多重继承即:一个类只能有一个父类。
2):父类具备的方法子类可直接继承过来,不用重新书写,提高了代码的复用性
3):让类与类之间产生了关系,有了关系才有了多态的实现。

封装

封装是指隐藏(保护)对象属性,仅提供特定对外访问方式(get/set…方法),让类外部可以访问到隐藏的对象属性。通过关键字private实现。

多态

允许不同类型的子对象对统一消息做出不同的响应,利用多态可以使程序具有良好的扩展性,可以对所有的类对象进行通用处理。利用多态性,具有同样方法名和方法特征的方法根据调用方法的对象的类型,可以产生不同的动作
多态的体现
1:方法重写和重载
2:对象的多态性
3:父类引用指向子类对象
要了解多态我们首先需要来看向上/向下转型
向上转型(程序自动完成)
父类 父类对象=子类 子类对象
向下转型(强制类型转型)
子类 子类对象=(子类)父类实例
我们来看一段代码

class A{
    public void tell1(){

        System.out.println("A--tell1");
    }
    public void tell2(){

        System.out.println("A--tell2");
    }
}
class B extends A{
    public void tell1(){

        System.out.println("B--tell1");
    }
    public void tell3(){

        System.out.println("B--tell3");
    }
}
public class dogi {
    public static void main(String[] args) {
        A a=new B();
        a.tell1();
    }
}

输出结果为:
在这里插入图片描述
当我们用向下转型:

 public static void main(String[] args) {
        //向上转型
        B b=new B();
        A a=new A();
        a=b;
        //向下转型
        b=(B) a;
        b.tell1();
    }

我们看到输出是都是B类的tell1,这个地方子类重写父类方法,向上转型子类对象赋值给父类对象,向下转型父类赋值给子类实例(这里注意要发生向下转型必须先发生向上转型),调用父类因为在子类重写父类方法,调用的的是子类方法,所以我们知道当子类重写父类方法当子类,这里体现了多态。
/
/
/
希望看到我文章朋友,如果发现有什么不足之处,能够不吝赐教,多多指点,我一定洗耳恭听。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值