Java 面向对象

2023-10-27

1. 继承

(1) extends 用于类的继承,implements 用于接口的继承

(2) extends 不能多重继承,但是 implements 可以多重继承。

(3) super关键字:用来引用当前对象的父类。

this关键字:指向自己的引用。

(4) final 关键字声明类,就是把类定义为最终类,不能被继承

(5) 构造器(构造函数):子类会显式或隐式地调用父类的构造器。

如果父类构造器没有参数,则子类会自动调用父类的无参构造器。

如果子类显式地调用了父类的带参构造器,则不会再调用无参构造器。

2. 重写 与 重载

(1) 参数必须完全相同。

(2) 返回类型可以不相同,但是必须是父类返回值的派生类。

(3) 访问权限可以变高,但不能变低。比如父类是procted,则子类可以是public,但不能是private

(4) 声明为 final 的方法不能被重写。

(5) 声明为 static 的方法不能被重写,但能够被再次声明

(6) 重写的方法可以抛出任何RuntimeException ,但不能抛出新的IOException,或者比被重写方法声明的更广泛的IOException。

(7) 重载: 参数必须不同,返回值可以相同也可以不同。

(8) 被重载的方法可以改变访问修饰符。

(9) 被重载的方法可以声明新的或更广的检查异常。

3. 抽象类:

例如: public abstract class Employee

(1) 抽象类不能被实例化;

(2) 抽象类中可以没有抽象方法,但是有抽象方法的类必定是抽象类

(3) 抽象方法不能用static 修饰

(4) 子类必须实现父类中的抽象方法,除非该子类也是抽象类。

4. 封装

任何要访问类中私有成员变量的类都要通过这些getter和setter方法

5. 接口 Interface

例子:public interface NameOfInterface

(1) 接口无法被实例化,只能被实现

(2) 实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类

(3) 接口类型可来声明一个变量,它可以是一个空指针,或者是一个以此接口实现的对象

(4) 接口没有构造方法,不能包含成员变量(但可以是static变量),支持多继承

(5) 接口和接口之间也可以是继承关系,继承使用extends关键字。例如:public interface Football extends Sports

(6) 接口的多重继承: public interface Hockey extends Sports, Event

(7) 标记接口:  没有任何方法的接口,它仅仅表明它的类属于一个特定的类型。

例如: public interface EventListener {}

6. 枚举

(1) 枚举的定义。注意不需要写 =1, =2 之类

enum Color 

    RED, GREEN, BLUE; 

(2) 可以使用for  values() 语句遍历枚举

for (Color myVar : Color.values()) {
      System.out.println(myVar);
    }

(3) 可以用于switch

Color myVar = Color.BLUE;
    switch(myVar) {
      case RED:
        System.out.println("红色");
        break;
    }

(4) 一些方法:

values() : 返回枚举类中所有的值。
ordinal():返回枚举常量的索引。
valueOf():返回指定字符串值的枚举常量。

7. 包(package)

(1) package net.java.util  的路径应该是 net/java/util/ 这样保存的

(2) import payroll.*;  表示引用 payroll包的所有类

(3) 类目录的绝对路径叫做 class path。设置在系统变量 CLASSPATH 中

显示:echo $CLASSPATH; 

删除: unset CLASSPATH; export CLASSPATH

设置:CLASSPATH=/home/jack/java/classes; export CLASSPATH

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 面向对象 的相关文章

随机推荐