java 类 多态

作用域

private:私有,只可在类中被访问

public:公共,可在类外被使用

protect:保护,在同一包中被使用

通过对象能访问的成员只能时类中定义的public成员

构造方法

public class time1{
    public time1(int param1){
        hour = param1;
    }
    public time1(int param1,int param2){
        hour = param1;
        minute = param2;
    }
}

this、set、get

this定义为当前对象的引用(如参数名和成员变量名相同时,通过this显示访问对象的成员变量)

public void setXXX(type value){this.XXX = value;}public type getXXX(){return XXX;};

内存管理

java在对象不再被引用的时候,会被视为“垃圾”,,通过Java的垃圾回收器回收该对象占有的空间。

若希望将对象销毁,可将变量指向null,Object不被引用则自动销毁。

Package

Package 包名;
public ......
import com.zwj.testPackageX.Time1;
import com.zwj.testPackageX.*;

继承、派生

父类为子类的一般化,子类为父类的具体化(学生->大学生->本科生、硕士生)。在继承中子类仅可访问超类的public与protect成员

继承有单继承与多继承,尽量使用单继承

class 本科生 extends 大学生{
    ......
}

使用父类被重写的方法:super.超类同名方法(params)

@override:1.帮助自己检查是否正确的复写了父类中已有的方法。2.告诉读代码的人,这是一个复写的方法。

在手工重写父类的方法时,容易把方法的参数记错,如果此时不加@Override的话,编辑器就不会提示你。原本的重写就变成了重载方法

继承下的构造

创建子类对象时,先调用直接父类的构造方法,然后再调用子类本身的构造方法。

若有显示的构造方法(super(paramList)必须写在子类构造方法的第一行),若无,系统默认调用基类的无参数构造方法(如果子类构造方法中既没有显示调用基类构造方法,而基类又没有无参数的构造方法,则编译出错)

finalize:父类构造->子类构造->子类finalize->父类finalize

多态

包括抽象方法抽象类、接口、嵌套类、内部类。

继承的层次:不可将超类对象赋给子类,但可以将子类赋给超类基类。(子类可能有新的method)

抽象类abstract

类是一组同类型对象的描述,一组类的公共特性可用超类描述,一组超类的公共特性或接口可用抽象类描述

抽象类包括一个或多个抽象方法(静态方法不可为抽象方法),抽象类不可实例化,但可用抽象超类来声明引用变量

public abstruct class shape extends Object{
    public double getArea(){
        return 0.0;
    }
    public double getVol(){
        return 0.0;
    }
    public abstract String getName();
}
public class Point extends Shape{
    ...
    public String getName(){//抽象类的具体实现
        ...
    }
    public String toString(){//超类Object里toString方法的重写
        ...
    }
}

接口Interface

用于声明一组类的公共操作的接口,有一组常量和一组抽象方法组成(接口不包括边拉你个和有具体实现的方法)

接口的实现:类中应该提供在接口中所有方法的实现,否则则是抽象类不可实例化

public interface Shape{
    public double getArea();
    public double getVol();
}
public class point extends Object implements Shape{
    ...
    public double getArea(){
        ...
    }
    public double getVol(){
        ...
    }//全部实现interface里的
}
原文地址:https://www.cnblogs.com/tillnight1996/p/10889934.html