JAVA面向对象三大基本特征

本文深入解析Java面向对象的三大核心特性:封装、继承和多态。详细阐述了封装的概念及实现方法,解释了继承的原理及其在提高程序扩展性和代码重用性方面的优势;并探讨了多态性及其在解决应用程序函数同名问题上的作用。通过实例演示,帮助读者全面理解并掌握面向对象编程思想。

      面向对象是当前计算机界的重点,是当今软件开发方法的主流。java面向对象具有三大基本特性:封装、继承、多态。要想掌握面向对象思想,就得深入了解这三大基本特性。

一、封装性

      所谓封装,就是将对象具有的成员变量和成员函数包装和隐藏起来,让外界无法直接使用,被封装的成员只能通过某些特定的方式才能访问。 

      实现封装有两个步骤:

     1、将不能暴露的成员隐藏起来,我们就不能让其在类的外部被直接访问或赋值。实现方法是将该成员定义为私有的,在成员定义前加上private访问权限修饰符。

     2、用公共方法来暴露对该隐藏成员的访问,可以给成员加上public修饰符,将该成员定义为公共的。

具体请看如下实例:

class Customer{

         String name;

         String sex;

         private int age;

         public void setAge(){

               if(age<0||age>100){

                   System.out.println("age无法赋值")      

                   return;     

               } 

               this.age = age;

            }

      public int getAge(){

              return this.age;

              }

}

public class Test{

   public void main(String[] args){

        Customer zhangsan = new Customer();

        zhangsan.setAge(25); //使用特殊方法访问Customer类的age成员

        System.out.println("zhangsan.age="+zhangsan.getAge()); 

    }

}

 

二、继承性

     所谓继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了父类的特性,新类称为原始类的派生类(子类),而原始类称为新类的父类。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。

1. 为什么要使用继承?

    a.提高程序的扩展性。
    b.提高了代码的重用性。

2.java继承的语法格式
      java中继承的关键字是:extends
      格式:
      public class 子类名 extends 父类名 {
 
      }
      注意:
     java的继承是单继承。一个类只有一个父类。

3.子类能继承到父类的那些方法和属性?
    第一种:所有的属性和方法都被子类继承到了。

    第二种:
    a、子类和父类在同一个包下:
    公有的受保护的属性和方法被子类继承到了。
    b、子类和父类不在同一个包下:
    公有的方法和属性被子类继承到了。

4.子类的对象能调用父类的那些方法和属性?
    a、子类和父类在同一个包下:
    公有的受保护的属性和方法能被子类调用。
    b、子类和父类不在同一个包下:
    公有的方法和属性能被子类调用。

    在类和抽象类中,默认的就是受保护的。
    在接口中,默认的就是公有的。

5.方法的重写
    实现方法重写的条件:
    a.必须要存在继承关系
    b.方法的返回值类型,方法名,参数个数以及参数类型必须要和父类的完全相同。
    c.方法的访问修饰符,可以大于或者等于父类方法的访问修饰符。
    只能重写受保护的和公有的
    protected  --->  public
    public    X   protected

    重写的方法如何调用?
    会优先执行子类的方法,如果子类中没有该方法,则执行父类中定义的方法。

6.重载overload

  同一个类中,相同名字的方法,但是参数类型、个数或者顺序至少有一项不同。

//定义一个学生类
public class Student{
 private String name;
 private double $score;
 public Student(){
  System.out.println("Student");
 }
 public Student(String name){
  this.name = name;
 }

 public String getName(){
  return name;
 }
 //定义学习方法
 public void study(){
  $score++;
  System.out.println(name+"学习中,学分是"+$score);
 }
}

 

 

//定义一个大学生类
public class UNStudent extends Student {

 public UNStudent(){
  System.out.println("UNStudent");
 }
 
 //重写学习方法
 public void study(){
  System.out.println(getName()+"在学习中!!!");
 }
 //重载学习方法
 public void study(String str){
  System.out.println(getName()+"在学习中!!!");
 }

 public void play(){
  System.out.println(getName()+"在踢足球");  
 }

}

三、多态性

     所谓多态是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

     实质:指当系统A访问系统B的服务时,系统B可以通过多种实现方式来提供服务,而这一切对系统A是透明的。

     多态就是方法的重载,继承,方法重写,自动转型等技术的统称。

 

以上就是我对java面向对象的三大基本特性的总结,不足之处请多加指教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值