zoukankan      html  css  js  c++  java
  • 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里的
    }
    
  • 相关阅读:
    VC窗口类的销毁-是否需要delete
    ScrollView在调试状态一点击就挂的原因(OnMouseActivate)
    TextOut与DrawText的区别
    NOIP2010 引水入城
    欧拉回路
    BZOJ 1202: [HNOI2005]狡猾的商人
    codevs 2491 玉蟾宫
    BZOJ 1059: [ZJOI2007]矩阵游戏
    BZOJ 1024: [SCOI2009]生日快乐
    ural 1297. Palindrome
  • 原文地址:https://www.cnblogs.com/tillnight1996/p/10889934.html
Copyright © 2011-2022 走看看