java面向对象简要总结 二


一、类的继承

类可以继承,即基于原有的类派生出一个新类,子类继承父类的属性和方法。

继承表示方法:

<修饰符> class 子类名 extends 父类名{

类体

}

这样子类就可以调用父类的属性和方法。

例子:

class testclass {
    public int normal_int = 1;
}

class another_class extends testclass{
            int another_int = 1;
            void a() {
                normal_int = 233; //调用父类中的属性
            }
        }

可以通过 super.[属性或方法名] 来访问父类的属性或方法。

继承可以是多重次的,访问多重继承不需要使用super.super,因为父类已经继承了其上的所有父类。

同其他方法一样,子类也可以直接调用父类的构造方法。示例如下:

class testclass2 extends testclass1{
    testclass2(){ //testclass2的构造方法
        super(); //调用父类的构造方法
    }
}

二、重写

重写建立在继承关系上,能够让子类重新编写父类的某些方法,以使子类能够更加适应程序的需求。

例子:

class oneClass{
    void print(){
        System.out.println("属于父类");
    }
}

class anotherClass{
    void print(){
         System.out.println("属于子类");
    }
}

如果在子类中调用.print(),则实际会调用到被重写了的print方法,输出“属于子类”。

三、重载

在java中,只要方法的参数不一样,就可以允许两个或多个方法同名。因此,可以基于提供参数的不同,分别执行不同的方法。

例子:

public class oneClass{
    void print(){
        System.out.println("打印了寂寞");
    }
    void print(int a, int b){
        System.out.println(a+"和"+b);
    }
    void print(int a, bool b){
        System.out.println(a+"和"+b);
    }
}

四、隐藏和封装

java提供了3种访问控制符,与默认权限一起组成了4种访问控制级别,分别是:

  • private

  • default

  • protected

  • public

通过对类的属性和方法进行有效的权限控制,可以隐藏有必要隐藏的内容,只对外保留以需要的方法或属性的访问权限,以确保自己程序的运行不会因为外界访问而产生问题。

也可以通过访问权限控制,增加符合自身要求的供外界调用的方法,保证数据的产生或修改都符合自身程序要求,保证运行稳定,而不是让外界直接修改类内部的数据。

所谓“高内聚,低耦合”,就是让内部具体实现的方式封装在内部,而只提供少量必要方法供外部使用。

五、接口

接口与类相似,接口也可以定义方法,作为系统与外界交互的窗口,规范实现者提供的服务,可以作为多个程序之间的通信标准。

申明方法:

[public] interface 接口名 {

[常量]

抽象方法

}

接口中为保证静态且final,只能定义常量,不能定义变量。

接口里的方法都是公共的且抽象的,默认强制设置,可以不用关键字修饰。

因为接口中的方法都是抽象的,要实现这些方法,必须要由其他类来进行实现。

实现接口的格式:

class 类名 implements <接口名> {

...

}

例子:

interface jiekou{
    int add(int a,int b);
}
class classOne implements jiekou{
    public int add(int a,int b){
        return a+b;
    }
}

一个类可以实现多个接口,弥补了继承的不足。

implements 接口1, 接口2

通过面向接口编程,能够实现将具体实现和限制要求分离,从而减少程序间的耦合。

最后更新于