【JAVA】Java是如何实现面向对象的?

学了java这么长时间,一直也搞不清它是怎么面向对象的,当然现在也没搞太清楚,写一下现在的理解以备以后反思的时候有个参照

提面向对象就不得不提:抽象、封装、继承、多态,抽象是封装、继承、多态的基础,把相同的东西抽出来才有了类(class)、变量、数据结构等等。Java在对类等的各项规定和设置,保障了这三大特性。

  1. 封装
    Java语言里,声明的时候,可以用权限修饰符设置访问权限,不设置则默认为defult,各修饰符及其代表的权限见下表,defult其实就是package权限,可以访问包中的权限及变量。

    修饰符类内部同一个包子类任何地方
    privateYes
    defultYesYes
    protectedYesYesYes
    publicYesYesYesYes
  2. 继承
    继承是让子类具备父类的特性,比如父类声明的变量、方法甚至构造方法等等。
    那么父类声明private的特性可以被子类继承吗?NO!原因见上表。
    父类没有声明的特性可以被子类继承吗?分情况!由上表可查,同一个包下的子类可访问,非同一个包的子类不可访问。

    继承的关键字是extends和implements。
    extends描述的是类与类之间的单向继承,就是说一个子类只能拥有一个父类。

public class Penguin  extends  Animal{ 
}

implements描述的是类与接口间的多继承

public class C implements A,B {
}

3.. 多态
java在继承中可以实现重写,当父类引用指向子类对象时,Java提供了动态绑定(迟绑定)的机制,就是实际new的谁就调用谁。
添加新类型的时候,直接继承父类,实现的时候直接调用即可。

public class Basic_extends {
    public static void main(String[] args) {
        A b = new B();//注意,声明的是A
        A c = new C();//这里声明类型的也是A
        b.dosome();
        c.dosome();
    }
}

class A {
    public void dosome() {
        System.out.println("父类");
    }
}

class B extends A {
    public void dosome() {
        System.out.println("子类B");
    }
}

class C extends A {
    public void dosome() {
        System.out.println("子类C");
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值